• golang log


    package log                                                                                                                                                                                                 
    
    import (
        "log"
        "os"
        "time"
    )
    
    var (
        debug_log  = "debug.log"
        log_format = "2006-01-02-15"
    )
    
    var fileHandle *os.File
    var cs chan string
    
    func init() {
        file_name := getFileName()
        fileHandle, _ = os.OpenFile(file_name, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0755)
        log.SetOutput(fileHandle)
        cs = make(chan string, 1024)
        go WriteChan(cs)
    
    }
    
    func getFileName() string {
        now := time.Now()
        date := now.Format(log_format)
        file_path := "/your/local/dir/"
        filename := file_path + debug_log + "." + date
    
        return filename
    }
    
    func WriteDebugLog(content string) {
    
        //check log file
        curFileName := getFileName()
    
        if _, err := os.Stat(curFileName); os.IsNotExist(err) {
            file_name := getFileName()
            fileHandle, _ = os.OpenFile(file_name, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0755)
            log.SetOutput(fileHandle)
        }   
        //WriteSingleLog(content)
        cs <- content
    }
    
    func WriteChan(cs chan string) {
        for {
            select {
            case con := <-cs:
                WriteSingleLog(con)
                //beego.Debug(len(cs))
            }
        }
    }
    
    func WriteSingleLog(content string) {
        log.Println(content)
    }          
    

      

  • 相关阅读:
    springboot笔记
    SpringBoot
    SpringBoot整合JPA
    Docker
    SpringMVC学习04:异常处理和拦截器
    SpringMVC学习03:文件上传
    SpringMVC学习02:响应数据和结果视图
    Mybatis学习04
    【java基础】初步理解面向对象、类、对象
    【Java基础】方法的重载
  • 原文地址:https://www.cnblogs.com/allenhaozi/p/7800798.html
Copyright © 2020-2023  润新知