0
uber/zap logger apiを設定して、指定したファイルパスにログを追加する方法。パフォーマンスに影響を与えずにローリングファイルアペンダー(ファイルサイズまたは日付に基づく)のように動作させることができますか?ファイルシステムログをローリングするためのuber/zap loggerの設定方法
uber/zap logger apiを設定して、指定したファイルパスにログを追加する方法。パフォーマンスに影響を与えずにローリングファイルアペンダー(ファイルサイズまたは日付に基づく)のように動作させることができますか?ファイルシステムログをローリングするためのuber/zap loggerの設定方法
ザップロガーにフックを追加して、エントリをlumberjackに書き込むことができます。これは、Goのローリングログです。
簡単な使い方は次のようになります:
ローリングログ:
// remember to call this at app (or scope) exit:
// logger.Close()
var lumlog = &lumberjack.Logger{
Filename: "/tmp/my-zap.log",
MaxSize: 10, // megabytes
MaxBackups: 3, // number of log files
MaxAge: 3, // days
}
zap
互換フック:
func lumberjackZapHook(e zapcore.Entry) error {
lumlog.Write([]byte(fmt.Sprintf("%+v", e)))
return nil
}
など、それを使用します。
logger, _ := zap.NewProduction(zap.Hooks(lumberjackZapHook))
を
編集1:これがパフォーマンス面での要件を満たしているかどうかはわかりません。そこには多くの要因があります。たとえば、SSDハードを使用すると大きな違いがありますし、バッチ書き込みでいくつかのtimeseriesデータベースにログインすることさえできます。
編集2: zap documentationでも、これは釣り竿(フックとしてではなく)を使用しています。
あなたは何ですか?あなたのアプリはどのように動いていますか?どうやってロギングしていますか? – captncraig
私は通常、stdout/stderrにアプリケーションのログを推奨し、syslogやその他のツールを使って回転ログファイルにリダイレクトします。 – captncraig