package Loggers
import (
"io"
"os"
"log"
)
var logCloser io.Closer
func MyLogger() {
logFile, err := os.OpenFile("C:/Git/goclassec/src/gclassec/Logs/log.txt", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0666)
if err != nil {
panic(err)
}
logCloser = logFile
log.SetOutput(logFile)
}
func CloseMyLogger() {
logCloser.Close()
}
我想生成四个用于警告,调试,错误和信息的日志文件。 我想控制在运行时应打印哪个文件
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- dou5454954610 2017-02-10 07:57关注
You can use
log.New
to create different loggers and wrap it inside your MyLoggerThis is the New format
New(out io.Writer, prefix string, flag int)
Here is a sample implementation
Code
package loggers import ( "log" "os" ) //MyLogger custom logger type MyLogger struct { ErrorL *log.Logger InfoL *log.Logger DebugL *log.Logger } //New returns logger //TODO : deal with error func New() *MyLogger { ml := new(MyLogger) if logFile, err := os.OpenFile("C:/Git/goclassec/src/gclassec/Logs/log_error.txt", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0666); err == nil { ml.ErrorL = log.New(logFile, "ERROR", log.LUTC) } if logFile, err := os.OpenFile("C:/Git/goclassec/src/gclassec/Logs/log_info.txt", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0666); err == nil { ml.InfoL = log.New(logFile, "INFO", log.LUTC) } if logFile, err := os.OpenFile("C:/Git/goclassec/src/gclassec/Logs/log_debug.txt", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0666); err == nil { ml.DebugL = log.New(logFile, "DEBUG", log.LUTC) } return ml } func (ml MyLogger) Error(data ...interface{}) { ml.ErrorL.Println(data...) } func (ml MyLogger) Info(data ...interface{}) { ml.InfoL.Println(data...) } func (ml MyLogger) Debug(data ...interface{}) { ml.DebugL.Println(data...) }
Usage
logger := loggers.New() logger.Error("Error occured",err) logger.Info("Doing","something","again","blah")
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
- ¥15 python爬取bilibili校园招聘网站
- ¥30 求解达问题(有红包)
- ¥15 请解包一个pak文件
- ¥15 不同系统编译兼容问题
- ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?
- ¥30 数字电源对DSP芯片的具体要求
- ¥20 antv g6 折线边如何变为钝角
- ¥30 如何在Matlab或Python中 设置饼图的高度
- ¥15 nginx中的CORS策略应该如何配置