Search code examples
logginggorevel

Programmatically turn off logging revel framework


How can I programatically turn of logs like the one below. I need this to be able to run my testsuites with out filling the test logs with warnings and info logs.

revel.INFO.printf("")

Thanks for your help.


Solution

  • From package revel you have:

    var (
        // Loggers
        TRACE = log.New(ioutil.Discard, "TRACE ", log.Ldate|log.Ltime|log.Lshortfile)
        INFO  = log.New(ioutil.Discard, "INFO  ", log.Ldate|log.Ltime|log.Lshortfile)
        WARN  = log.New(ioutil.Discard, "WARN  ", log.Ldate|log.Ltime|log.Lshortfile)
        ERROR = log.New(&error_log, "ERROR ", log.Ldate|log.Ltime|log.Lshortfile)
    )
    

    From package log you have:

    func New

    func New(out io.Writer, prefix string, flag int) *Logger
    

    New creates a new Logger. The out variable sets the destination to which log data will be written. The prefix appears at the beginning of each generated log line. The flag argument defines the logging properties.

    From package ioutil you have:

    var Discard io.Writer = devNull(0)
    

    Discard is an io.Writer on which all Write calls succeed without doing anything.

    Therefore, to turn off the revel.INFO log try:

    revel.INFO = log.New(ioutil.Discard, "INFO  ", log.Ldate|log.Ltime|log.Lshortfile)