Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove Timestamp Prefix from Go Logger

I am utilizing Go Logger and a third party library called lumberjack for file rotation:

  • https://golang.org/pkg/log/
  • https://github.com/natefinch/lumberjack

Code Setting up the logger:

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

The logs I have are sensitive, so here is a hypothetical example of the output of a log:

 2018/02/05 19:00:08 "My log" 

The logging schema for my company does not comply with having a timestamp in the front. I am gathering a different timestamp from other resources. I would like to remove the prefixed timestamp so that it only logs:

"My log"

I've looked through both links above, and looked through the source of the third party library lumberjack, and have not discovered a way to remove this. I saw the SetPrefix() funtion in the go log documentation. I tried doing the following to try and cancel the timestamp prefix, but it failed:

log.SetPrefix("")

Is there any obvious or not so obvious way to remove the timestamp?

like image 815
btald1331 Avatar asked Feb 05 '18 19:02

btald1331


1 Answers

Use log.SetFlags to remove the timestamp.

log.SetFlags(log.Flags() &^ (log.Ldate | log.Ltime))

The above removes the timestamp from whatever flags might be set. To remove all flags, including the timestamp, use the following:

log.SetFlags(0)
like image 134
Bayta Darell Avatar answered Oct 17 '22 06:10

Bayta Darell