dongshai2022 2015-05-01 12:15 采纳率: 100%
浏览 7
已采纳

以编程方式关闭Logging Revel框架

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.

  • 写回答

1条回答 默认 最新

  • doure5236 2015-05-01 22:30
    关注

    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)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?