实现简单的日志写入文件功能
运行环境:
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简单日志类的更多相关文章

  1. C++ 最简单的日志类

    最近搞一个 C++ 项目的二次开发,没玩过 C++,可谓步履维艰.自己写个简单的日志类都被各种坑折磨.终于搞定了. 参考了这篇博客,并且进一步简化:https://www.cnblogs.com/Ds ...

  2. 简单实用的日志类CLog (Python版)

    #coding: utf-8 import time ''' /***************************************************************** Fu ...

  3. android Loger日志类(获取内置sd卡)

    Android手机自带内部存储路径的获取 原文地址:http://my.oschina.net/liucundong/blog/288183 直接贴代码: public static String g ...

  4. Golang的日志处理

    整个看了一圈下来,感觉Golang的日志包在管理多线程安全的情况下,提供了最小粒度的工具.并没有提供什么复杂的过滤器之类的生成. 实现了一个demo来记录一下日志分类日志打印等实现: package ...

  5. WorldWind源码剖析系列:日志类Log

    Utility工程中的日志类Log主要用来输出Debug状态下的调试信息.该类的类图如下: 日志类Log中使用到的类和内嵌结构体类型主要有以下这些: public class LogEventArgs ...

  6. java基础之JDBC三:简单工具类的提取及应用

    简单工具类: public class JDBCSimpleUtils { /** * 私有构造方法 */ private JDBCSimpleUtils() { } /** * 驱动 */ publ ...

  7. SLF4J 简单日志门面 介绍和使用

    参考:http://singleant.iteye.com/blog/934593        http://liuzidong.iteye.com/blog/776072 介绍: 简单日记门面(s ...

  8. PHP打印日志类

    PHP简单封装个打印日志类,方便查看日志: <?php /** * Created by PhpStorm. * User: zenkilan * Date: 2019/9/26 * Time: ...

  9. muduo网络库源码学习————日志类封装

    muduo库里面的日志使方法如下 这里定义了一个宏 #define LOG_INFO if (muduo::Logger::logLevel() <= muduo::Logger::INFO) ...

随机推荐

  1. MySQL乐观锁和悲观锁的概念和原理

    乐观锁:在取数据时不加锁,等处理完逻辑的时候,查看是否与上一次相同,若相同则更新,若不同则拒绝. 悲观锁:在取数据时就加上锁,只有更新完数据之后,别的用户才可以进行读. (个人总结)

  2. Kali linux 2018安装后全屏乱码解决

    安装的时候选择了中文, 后来安装成功后成了全部乱码的. 原因是,系统没有中文字体显示安装包, 下载一个 sudo apt-get install ttf-wqy-zenhei 重启解决!

  3. android官方开发教程解释(一)

    最近准备系统学一下android开发,这里不会照搬原文,只会针对教程中一些难以理解的部分进行解释,我只是个菜鸟. 在教程第一章——入门基础里面,讲解android主题的那个小节,大概会有以下的代码: ...

  4. 关于VS2013下制作和使用静态库和动态库

    关于VS2013下制作和使用静态库和动态库 引言 什么是库:库是写好的现有的,成熟的,可以复用的代码. 所谓静态.动态是指链接.将一个程序编译成可执行程序的步骤: 静态库在链接阶段,会将汇编生成的目标 ...

  5. 呼叫中心获取sip数据报文

    1.下载sngrep并且安装: 运行 ./sngrep 进入呼叫列表,空格选中呼叫流,进入 2.呼叫信息 回车进入原始窗口 空格选中两条消息流,回车进入消息差异窗口 F8设置

  6. Vue学习【第一篇】:Vue初识与指令

    什么是Vue 什么是Vue Vue.js是一个渐进式JavaScript框架它是构建用户界面的JavaScript框架(让它自动生成js,css,html等) 渐进式:vue从小到控制页面中的一个变量 ...

  7. 再谈 iptables 防火墙的 指令配置

    手机上使用localhost为什么不能访问? 电脑上使用localhost 访问主页的原理是 电脑上有网站资源和服务器相关程序apache等的支持, 同时在 电脑的hosts文件中 有 127.0.0 ...

  8. 三星固态sm863,pm863,sm865,sm865a颗粒

    目录 左pm863,右sm863: sm865: sm865a: 主控,缓存: 颗粒: 左pm863,右sm863: sm865: sm865a: 主控,缓存: 颗粒:

  9. NodeJs中npm使用

    什么是 NPM npm 之于 Node ,就像 pip 之于 Python , gem 之于 Ruby , pear 之于 PHP . npm 是 Node 官方提供的包管理工具,他已经成了 Node ...

  10. 题解——Codeforces Round #508 (Div. 2) T3 (贪心)

    贪心的选取最优解 然后相减好 记得要开long long #include <cstdio> #include <algorithm> #include <cstring ...