cflag - wraps and extends Go flag build pertty CLI command
cflag - wraps and extends Go flag build pertty CLI command
· 4 min read
cflag - wraps and extends Go flag build pertty CLI command
gitw - Git 命令包装器,生成 git 变更记录日志,获取 repo 信息和一些 git 命令工具。
git 命令git 命令git log 快速生成版本变更日志slog - a lightweight, configurable, extensible Go logging library

trace debug info notice warn error fatal panicHandler Formatter as neededHandler log processing at the same time, outputting logs to different placesFormatterjson text two log record formatting FormatterHandlerhandler.Config handler.Builder can easily and quickly build the desired log handlerconsole output logs to the console, supports color outputwriter output logs to the specified io.Writerfile output log to the specified file, optionally enable buffer to buffer writessimple output log to the specified file, write directly to the file without bufferingrotate_file outputs logs to the specified file, and supports splitting files by time and size, and buffer buffered writing is enabled by defaultbuffer for log writingtime and sizegzipBackupNum BackupTimego get github.com/gookit/slog
package main
import (
"github.com/gookit/slog"
)
func main() {
slog.Trace("this is a log message")
slog.Debug("this is a log message")
slog.Info("this is a log message")
slog.Notice("this is a log message")
slog.Warn("this is a log message")
slog.Error("this is a log message")
slog.Fatal("this is a log message")
}
output preview:

Using slog to output logs to files is very convenient, and supports multiple files, splitting by time, etc.
package main
import (
"github.com/gookit/slog"
"github.com/gookit/slog/handler"
"github.com/gookit/slog/rotatefile"
)
func main() {
defer slog.MustFlush()
// DangerLevels contains: slog.PanicLevel, slog.ErrorLevel, slog.WarnLevel
h1 := handler.MustRotateFile("/tmp/logs/app_error.log", rotatefile.EveryHour,
handler.WithLogLevels(slog.DangerLevels),
)
// NormalLevels contains: slog.InfoLevel, slog.NoticeLevel, slog.DebugLevel, slog.TraceLevel
h2 := handler.MustRotateFile("/tmp/logs/app_info.log", rotatefile.EveryHour,
handler.WithLogLevels(slog.NormalLevels),
)
slog.PushHandler(h1)
slog.PushHandler(h2)
// add logs
slog.Info("info message text")
slog.Error("error message text")
}
See logs dir:
$ ls /tmp/logs
app_error.log
app_info.log
More usage please see README
简单学习编写bash命令自动补全
简单快速的配置自己的bash环境