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
}