从Go Logger中删除时间戳前缀

bta*_*331 4 logging timestamp go

我正在使用Go Logger和一个名为lumberjack的第三方库进行文件轮换:

代码设置记录器:

log.SetOutput(&lumberjack.Logger{
  Filename:   "/var/log/proxy.log",
  MaxSize:    1000, // megabytes
  MaxBackups: 3,
  MaxAge:     1, // days
  Compress:   true, // disabled by default
})
Run Code Online (Sandbox Code Playgroud)

我的日志是敏感的,所以这是一个日志输出的假设示例:

 2018/02/05 19:00:08 "My log" 
Run Code Online (Sandbox Code Playgroud)

我公司的日志架构不符合前面的时间戳.我正在从其他资源收集不同的时间戳.我想删除前缀时间戳,以便它只记录:

"My log"
Run Code Online (Sandbox Code Playgroud)

我查看了上面的两个链接,并浏览了第三方库伐木工人的来源,并没有找到一种方法来删除它.我SetPrefix()在go日志文档中看到了这个功能.我尝试执行以下操作以尝试取消时间戳前缀,但它失败了:

log.SetPrefix("")
Run Code Online (Sandbox Code Playgroud)

是否有任何明显或不那么明显的方法来删除时间戳?

Cer*_*món 14

使用log.SetFlags删除时间戳.

log.SetFlags(log.Flags() &^ (log.Ldate | log.Ltime))
Run Code Online (Sandbox Code Playgroud)

以上删除了可能设置的任何标志的时间戳.要删除所有标志,包括时间戳,请使用以下命令:

log.SetFlags(0)
Run Code Online (Sandbox Code Playgroud)