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)
    	}
    }
    
  • 相关阅读:
    IK分词器插件
    倒排索引
    logstash-安装、基本使用、入门
    Anaconda使用-详解
    java之反射
    Java中级路线jdbc第一天
    Java字符串及字符串的常用方法知识点总结
    Java基本类型的类包装知识点总结
    Java Class类知识点总结
    java异常类知识点总结
  • 原文地址:https://www.cnblogs.com/devzyh/p/12589670.html
Copyright © 2011-2022 走看看