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) ...
随机推荐
- 获取ip,获取客户端浏览器,获取客户端访问操作系统,获取客户端访问设备
/** * 获取ip */ public static function getIp() { if (getenv('HTTP_CLIENT_IP')) { $ip = getenv('HTTP_CL ...
- Web视频播放之video.js
h5这么火是有它的理由的,支持原生视频播放,但是目前兼容性还不是很好,因此使用js框架支持网站视频播放是比较不错的选择. 下载video.js,我们可以通过官网去下,但是官网在国外,我尝试了几次均下载 ...
- Linux一些基本配置
Linux发行版:centos 6.5 配置yum源 wget http://mirrors.163.com/.help/CentOS6-Base-163.repo -P /etc/yum.repos ...
- jsonp获取股票信息
源码: <script src="http://hq.sinajs.cn/list=sh600050" charset="gb2312"></ ...
- Django之URL控制器(路由层)
url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive), 一.视图层路由配置系统 URL配置(URLconf)就像Django ...
- ldap集成grafana
grafana版本: 5.0.3 grafana通过k8s方式安装,所以需将配置文件挂载过去. cat grafana-configmap.yaml apiVersion: v1 kind: Conf ...
- Flask学习【第10篇】:自定义Form组件
wtforms源码流程 实例化流程分析 1 # 源码流程 2 1. 执行type的 __call__ 方法,读取字段到静态字段 cls._unbound_fields 中: meta类读取到cls._ ...
- 编译openwrt时报错:fstools-2018-01-02-11efbf3b/libfstools/overlay.c: At top level: cc1: error: unrecognized command line option '-Wno-format-truncation' [-Werror]
1. 详细错误信息 [ 11%] Building C object CMakeFiles/fstools.dir/libfstools/overlay.c.o/home/jello/openwrt/ ...
- 【Finchley】【升级变更】Spring Cloud 升级到Finchley版本后需要注意的地方
Spring Boot 2.x 已经发布了很久,现在 Spring Cloud 也发布了 基于 Spring Boot 2.x 的 Finchley 版本,现在一起为项目做一次整体框架升级. 升级前 ...
- centos6.5下安装mysql5.6
链接: https://blog.csdn.net/liangzhuoxun/article/details/81572094 该链接有个错误: 让修改的profile文件立即生效的命令为./etc/ ...