log.go 源码阅读

package main

import (
    "github.com/Sirupsen/logrus"
    "os"
    "path/filepath"
)

func initLogger() error {
    dirPath, _ := filepath.Abs(filepath.Dir(pConfig.Log.Path))  //获取日志文件目录
    if _, err := os.Stat(dirPath); os.IsNotExist(err) {  //检查目录是否存在
        os.Mkdir(dirPath, 0775)  //创建目录  存在潜在bug
    }

    file, err := os.OpenFile(pConfig.Log.Path, os.O_APPEND|os.O_CREATE|os.O_RDWR, 0666) //打开文件  权限:文件追加 文件创建  文件读写

    if err != nil {
        return err
    }

    level, err := logrus.ParseLevel(pConfig.Log.Level)  //设置日志级别
    if err != nil {
        return err
    }

    pLog = &logrus.Logger{
        Out:       file,   //日志问价输出位置
        Level:     level,  //日志级别
        Formatter: new(logrus.JSONFormatter),  //日志输出格式
    }

    pLog.Infof("InitLogger: path: %s, level: %s, formatter: json", pConfig.Log.Path, level)

    return nil
}
原文地址:https://www.cnblogs.com/zhangboyu/p/7461933.html