Golang简单日志类
实现简单的日志写入文件功能
运行环境:
golang1.4.2+win7x64
golang1.4.2+centos6.5×64
package Helper import (
“fmt”
“log”
“os”
“time”
) /*简单日志类*/
/*注意,这个类不是线程安全的*/
type LogFile struct {
mFile *os.File
mLogger *log.Logger
} //创建日志对象
func NewLogFile() *LogFile {
return &LogFile{mFile: nil, mLogger: nil}
} //开始log,参数fileName为日志文件名
func (logFile *LogFile) BeginLogFile(fileName string) error {
strTime := time.Now().Format(“20060102_150405″) //按照这种格式进行格式化 //GetCurPath()得到当前执行文件路径,参考前一篇博文,得到类似于这样的一个文件名称RSvr_20150130_180108.log
logFileName := GetCurPath() + fileName + “_” + strTime + “.log”
mFile, err := os.OpenFile(logFileName, os.O_RDWR|os.O_CREATE, ) if err != nil {
return err
} logFile.mLogger = log.New(mFile, “\r\n”, log.Ldate|log.Ltime|log.Llongfile) return nil
} //结束log,释放资源
func (logFile *LogFile) EndLogFile() {
if logFile.mFile != nil {
logFile.mFile.Close()
}
} //记录各种信息
//记录Fatal
func (logFile *LogFile) LogFatal(msg string, err error) {
if err != nil {
fmt.Printf(“Fatal: “+msg+” %v\n”, err) //显示出来
logFile.mLogger.Fatalf(“Fatal: “+msg+” %v\n”, err) //记录到文件里
}
} //记录Error
func (logFile *LogFile) LogErr(msg string, err error) {
if err != nil {
fmt.Printf(“Err: “+msg+” %v\n”, err) //显示出来
logFile.mLogger.Printf(“Err: “+msg+” %v\n”, err) //记录到文件里
}
} //记录msg
func (logFile *LogFile) LogMsg(msg string) {
fmt.Printf(“Msg: %v\n”, msg) //显示出来
logFile.mLogger.Printf(“Msg: %v\n”, msg) //记录到文件里
}
使用方法如下:
①创建一个全局变量
var logFile *Helper.LogFile = nil //记录文件
②创建对象并使用
//创建记录文件
logFile = Helper.NewLogFile()
err := logFile.BeginLogFile(“RSvr”) //TODO err判断 //TODO 线程安全 //记录信息
logFile.LogMsg(“RSvr Server Running!”) //释放
if logFile != nil {
logFile.EndLogFile()
}
Golang简单日志类的更多相关文章
- C++ 最简单的日志类
最近搞一个 C++ 项目的二次开发,没玩过 C++,可谓步履维艰.自己写个简单的日志类都被各种坑折磨.终于搞定了. 参考了这篇博客,并且进一步简化:https://www.cnblogs.com/Ds ...
- 简单实用的日志类CLog (Python版)
#coding: utf-8 import time ''' /***************************************************************** Fu ...
- android Loger日志类(获取内置sd卡)
Android手机自带内部存储路径的获取 原文地址:http://my.oschina.net/liucundong/blog/288183 直接贴代码: public static String g ...
- Golang的日志处理
整个看了一圈下来,感觉Golang的日志包在管理多线程安全的情况下,提供了最小粒度的工具.并没有提供什么复杂的过滤器之类的生成. 实现了一个demo来记录一下日志分类日志打印等实现: package ...
- WorldWind源码剖析系列:日志类Log
Utility工程中的日志类Log主要用来输出Debug状态下的调试信息.该类的类图如下: 日志类Log中使用到的类和内嵌结构体类型主要有以下这些: public class LogEventArgs ...
- java基础之JDBC三:简单工具类的提取及应用
简单工具类: public class JDBCSimpleUtils { /** * 私有构造方法 */ private JDBCSimpleUtils() { } /** * 驱动 */ publ ...
- SLF4J 简单日志门面 介绍和使用
参考:http://singleant.iteye.com/blog/934593 http://liuzidong.iteye.com/blog/776072 介绍: 简单日记门面(s ...
- PHP打印日志类
PHP简单封装个打印日志类,方便查看日志: <?php /** * Created by PhpStorm. * User: zenkilan * Date: 2019/9/26 * Time: ...
- muduo网络库源码学习————日志类封装
muduo库里面的日志使方法如下 这里定义了一个宏 #define LOG_INFO if (muduo::Logger::logLevel() <= muduo::Logger::INFO) ...
随机推荐
- JS传值中文乱码解决方案
JS传值中文乱码解决方案 一.相关知识 1,Java相关类: (1)java.net.URLDecoder类 HTML格式解码的实用工具类,有一个静态方法:public static String ...
- log4j2配置推荐
<?xml version="1.0" encoding="UTF-8"?> <!-- monitorInterval为监听配置变化的间隔,3 ...
- Centos7,配置防火墙,开启端口
原文链接:https://blog.csdn.net/u013410747/article/details/61696178 适用于CentOS 7 64位的指令: .查看已开放的端口(默认不开放任何 ...
- 【VNC】修改VNC分辨率大小
[VNC]修改VNC分辨率大小 VNC的分辨率过小有可能导致图形化界面操作过程中遇到"确认键或取消键"无法点击,分辨率过高又可能导致低分辨率客户端显示器无法显示.本文给出两种调整V ...
- 20165310 NstSec2019 Week3 Exp1 逆向与Bof基础
20165310 NstSec2019 Week3 Exp1 逆向与Bof基础 一.实验内容 实验目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用fo ...
- Codeforces 15E Triangles - 组合数学
Last summer Peter was at his granny's in the country, when a wolf attacked sheep in the nearby fores ...
- Junit中的setUp()与setUpBefore(), tearDown()与tearDownAfterClass()解析
@BeforeClass public static void setUpBeforeClass() throws Exception { } @AfterClass public static vo ...
- ODAC(V9.5.15) 学习笔记(十)TVirtualTable
名称 类型 说明 Options TVirtualTableOptions 选择项,包括: voPersistentData:在数据集关闭时不处理其相关数据内容 voStored:设计期对数据集的处理 ...
- Kettle 连接 Oracle 问题总结
一. Driver class 'oracle.jdbc.driver.OracleDriver' could not be found, make sure the 'Oracle' driver ...
- UML(统一建模语言)是通用的可视化标准建模语言。由构造块、公共机制、构架三部分组成。
UML UML(统一建模语言)是通用的可视化标准建模语言.由构造块.公共机制.构架三部分组成. 1.构造块:包括基本的UML建模元素(类.接口.用例等).关系(关联关系.依赖关系.泛化关系.实现关系) ...