美文网首页
golang同时输出到控制台和文件

golang同时输出到控制台和文件

作者: 笑吧小鸟 | 来源:发表于2019-07-25 00:16 被阅读0次

    golang同时输出到控制台和文件

    package main
    
    import (
        "fmt"
        "io"
        "log"
        "os"
    )
    
    func main() {
        fmt.Println("---------------")
        log.Println("------ log printl ----")
        func_log2file()
        func_log2fileAndStdout()
    }
    func func_log2file() {
        //创建日志文件
        f, err := os.OpenFile("test.log", os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644)
        if err != nil {
            log.Fatal(err)
        }
        //完成后,延迟关闭
        defer f.Close()
        // 设置日志输出到文件
        log.SetOutput(f)
        // 写入日志内容
        log.Println("check to make sure it works")
    }
    func func_log2fileAndStdout() {
        //创建日志文件
        f, err := os.OpenFile("test.log", os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644)
        if err != nil {
            log.Fatal(err)
        }
        //完成后,延迟关闭
        defer f.Close()
        // 设置日志输出到文件
        // 定义多个写入器
        writers := []io.Writer{
            f,
            os.Stdout}
        fileAndStdoutWriter := io.MultiWriter(writers...)
        // 创建新的log对象
        logger := log.New(fileAndStdoutWriter, "", log.Ldate|log.Ltime|log.Lshortfile)
        // 使用新的log对象,写入日志内容
        logger.Println("--> logger :  check to make sure it works")
    }
    

    【已解决】go语言中实现log信息同时输出到文件和控制台(命令行)

    相关文章

      网友评论

          本文标题:golang同时输出到控制台和文件

          本文链接:https://www.haomeiwen.com/subject/iobqrctx.html