zoukankan      html  css  js  c++  java
  • 日志工具的简单封装

    package tool
    
    import (
    	_log "log"
    	"os"
    	"strings"
    	"time"
    )
    
    // 日志工具
    type Logger struct {
    	// SaveDir 日志根目录
    	SaveDir string
    	// PrintOnCmd 是否打印到控制台
    	OnCmd bool
    	// SingFile 是否按文件分类保存
    	SingFile bool
    	// appRunDir 程序运行目录
    	appRunDir string
    }
    
    // Info 输出日志信息
    func (x *Logger) Info(msg string) {
    
    	x.logger(msg, "info")
    }
    
    // Panic 输出异常信息
    func (x *Logger) Panic(msg string) {
    
    	x.logger(msg, "panic")
    }
    
    // Fatal 输出故障信息并退出程序
    func (x *Logger) Fatal(msg string) {
    
    	x.logger(msg, "fatal")
    }
    
    // logger 日志记录
    func (x *Logger) logger(msg, flag string) {
    
    	if x.appRunDir == "" {
    		x.appRunDir, _ = GetAppDir()
    	}
    
    	if x.SaveDir == "" {
    		x.SaveDir = x.appRunDir + x.SaveDir
    	}
    
    	day := time.Now().Local().Format("20060102")
    	path := x.SaveDir + day + "."
    	if x.SingFile {
    		msg = "[" + strings.ToUpper(flag) + "] " + msg
    	} else {
    		path += flag + "."
    	}
    	path += "Logger"
    
    	f, err := os.OpenFile(path, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0644)
    	if err != nil {
    		_log.Fatalf(err.Error())
    	}
    	defer f.Close()
    
    	_log.SetOutput(f)
    	_log.SetFlags(_log.Ldate | _log.Ltime)
    	_log.Println(msg)
    
    	if x.OnCmd {
    		_log.Println(msg)
    	}
    }
    
  • 相关阅读:
    Linux dnsmasq.conf
    Linux 关闭网络管理服务
    Python Mysql_db对数据查询进行处理
    Python windows安装MYSQL_db
    Python 递归
    Nginx 系统维护配置
    ls 查看时间排序
    Nginx Linux yum安装
    Nginx 前后端分离配置 分发
    Spring boot 执行jar文件 方式
  • 原文地址:https://www.cnblogs.com/devzyh/p/12589670.html
Copyright © 2011-2022 走看看