package
0.0.0-20240105075242-dddda54ea9f0
Repository: https://github.com/linuxdeepin/go-lib.git
Documentation: pkg.go.dev
# README
接口简介
-
NewLogger
创建 Logger 对象, 需要传递一个日志名称, 如 "daemon/network"
-
Logger.SetLogLevel
设置日志记录级别, 默认为 Logger.LevelInfo
-
Logger.Debug, Logger.Info, Logger.Warning, Logger.Error
日志记录接口, 其中 Logger.Error() 会额外打印 go 函数调用轨迹 (trace)
-
Logger.Debugf, Logger.Infof, Logger.Warningf, Logger.Errorf
日志记录接口, 支持 format 格式, 语法风格和 fmt.Printf() 相同
-
Logger.Panic
记录日志并额外执行一条 panic() 语句
-
Logger.Fatal
记录日志并额外执行 os.Exit(1)
环境变量
- DDE_DEBUG, 若值不为空, 则打印所有日志, 启用其他 DDE_DEBUG_XXX 变 量时, 该变量会默认启用
- DDE_DEBUG_MATCH, 仅允许匹配该环境变量的 logger 对象打印i日志, 对 logger name 进行匹配, 不区分大小写
- DDE_DEBUG_LEVEL, 用于从外部设置日志打印级别, 可选值为 "debug", "info", "warning", "error", "fatal"
- DDE_DEBUG_CONSOLE, 若值不为空, 则以 syslog 格式打印终端日志
示例 1, 打印 startdde 所有日志:
env DDE_DEBUG=1 /usr/bin/startdde
示例 2, 仅打印 startdde 警告级别以上的日志:
env DDE_DEBUG_LEVEL="warning" startddek
示例 3, 打印 dde-daemon 中网络模块的所有日志:
env DDE_DEBUG_MATCH="network" dde-session-daemon
示例 4, 打印 dde-daemon 中网络模块的日志, 且仅打印警告级别以上的日志:
env DDE_DEBUG_MATCH="network" DDE_DEBUG_LEVEL="warning" dde-session-daemon
示例代码
import "github.com/linuxdeepin/go-lib/log"
import "flag"
var (
l = log.NewLogger("daemon/test")
argDebug bool
)
func main() {
defer func() {
if err := recover(); err != nil {
l.Fatal(err)
}
}()
// parse arguments
flag.BoolVar(&argDebug, "d", false, "debug")
flag.Parse()
// setup logger
if argDebug {
l.SetLogLevel(l.LevelDebug)
}
}
查看日志
对于 rsyslog, 可以配合辅助工具 logtool 高亮显示日志条目, 更加方便
# apt-get install logtool
$ tailf /var/log/syslog | logtool # follow syslog
$ tailf /var/log/syslog | grep "startdde" | logtool # filter startdde syslog items
对于 systemd,则可以使用 journalctl
$ journalctl -f # follow syslog
$ journalctl /usr/bin/startdde # filter startdde syslog items