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)
    	}
    }
    
  • 相关阅读:
    回到顶部
    angularjs 复选框 单选框
    关于angularjs的ng-repeat指令
    JS字符串对象
    JS的控制语句与异常
    JS的运算符
    JS的引入方式和基础规范
    z-index及透明度opacity,利用overflow设置头像
    css的定位
    css的float属性及清除浮动
  • 原文地址:https://www.cnblogs.com/devzyh/p/12589670.html
Copyright © 2011-2022 走看看