Eddwin Paz
Eddwin Paz

Reputation: 2868

Logrus: How to print con console log

Implementing Logrus Go package. File is saved but stopped printing out on the console the logs only visible in created .log file called vendor.log.

Here is the code currently using.


package logging

import (
    "fmt"
    "os"

    mylog "github.com/sirupsen/logrus"
)

// InitializeLogging asdas
func InitializeLogging(logFile string) {

    var file, err = os.OpenFile(logFile, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
    if err != nil {
        fmt.Println("Could Not Open Log File : " + err.Error())
    }
    mylog.SetOutput(file)

    //log.SetFormatter(&log.TextFormatter{})
    mylog.SetFormatter(&mylog.JSONFormatter{})
}

Upvotes: 0

Views: 5951

Answers (2)

safepost
safepost

Reputation: 165

If you use logrus you should better use hooks which is recommanded by documentation.

See : https://github.com/rifflock/lfshook for examples.

Using multiwriter is not optimal, because you can't have a different formatting for stdout and file, what you generally want to (colors for stdout and different timestamp for file for example).

Upvotes: 1

Burak Serdar
Burak Serdar

Reputation: 51512

You can try writing to multiple targets:

mylog.SetOutput(io.MultiWriter(file, os.Stdout))

Upvotes: 5

Related Questions