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")
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 气象站点数据求取中~
- ¥15 如何获取APP内弹出的网址链接
- ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
- ¥50 STM32单片机传感器读取错误
- ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据
- ¥15 (关键词-阻抗匹配,HFSS,RFID标签)
- ¥50 sft下载大文阻塞卡死
- ¥15 机器人轨迹规划相关问题
- ¥15 word样式右侧翻页键消失
- ¥15 springboot+vue 集成keycloak sso到阿里云