一个简单而强大的 golang 日志工具包
go get github.com/phachon/go-logger go get ./...
go 1.8
import ( "github.com/phachon/go-logger" ) func main() { logger := go_logger.NewLogger() logger.Info("this is a info log!") logger.Errorf("this is a error %s log!", "format") }
import ( "github.com/phachon/go-logger" ) func main() { logger := go_logger.NewLogger() logger.SetAsync() logger.Info("this is a info log!") logger.Errorf("this is a error %s log!", "format") // 程序结束前必须调用 Flush logger.Flush() }
import ( "github.com/phachon/go-logger" ) func main() { logger := go_logger.NewLogger() logger.Detach("console") // 命令行输出配置 consoleConfig := &go_logger.ConsoleConfig{ Color: true, // 命令行输出字符串是否显示颜色 JsonFormat: true, // 命令行输出字符串是否格式化 Format: "" // 如果输出的不是 json 字符串,JsonFormat: false, 自定义输出的格式 } // 添加 console 为 logger 的一个输出 logger.Attach("console", go_logger.LOGGER_LEVEL_DEBUG, consoleConfig) // 文件输出配置 fileConfig := &go_logger.FileConfig { Filename : "./test.log", // 日志输出文件名,不自动存在 // 如果要将单独的日志分离为文件,请配置LealFrimeNem参数。 LevelFileName : map[int]string { logger.LoggerLevel("error"): "./error.log", // Error 级别日志被写入 error .log 文件 logger.LoggerLevel("info"): "./info.log", // Info 级别日志被写入到 info.log 文件中 logger.LoggerLevel("debug"): "./debug.log", // Debug 级别日志被写入到 debug.log 文件中 }, MaxSize : 1024 * 1024, // 文件最大值(KB),默认值0不限 MaxLine : 100000, // 文件最大行数,默认 0 不限制 DateSlice : "d", // 文件根据日期切分, 支持 "Y" (年), "m" (月), "d" (日), "H" (时), 默认 "no", 不切分 JsonFormat: true, // 写入文件的数据是否 json 格式化 Format: "" // 如果写入文件的数据不 json 格式化,自定义日志格式 } // 添加 file 为 logger 的一个输出 logger.Attach("file", go_logger.LOGGER_LEVEL_DEBUG, fileConfig) logger.Info("this is a info log!") logger.Errorf("this is a error %s log!", "format") }
你想要自定义日志输出格式 ?
Logger Message
字段 | 别名 | 类型 | 说明 | 例子 |
---|---|---|---|---|
Timestamp | timestamp | int64 | Unix时间戳 | 1521791201 |
TimestampFormat | timestamp_format | string | 时间戳格式化字符串 | 2018-3-23 15:46:41 |
Millisecond | millisecond | int64 | 毫秒时间戳 | 1524472688352 |
MillisecondFormat | millisecond_format | string | 毫秒时间戳格式化字符串 | 2018-3-23 15:46:41.970 |
Level | level | int | 日志级别 | 1 |
LevelString | level_string | string | 日志级别字符串 | Error |
Body | body | string | 日志内容 | this is a info log |
File | file | string | 调用本次日志输出的文件名 | main.go |
Line | line | int | 调用本次日志输出的方法 | 64 |
Function | function | string | 调用本次日志输出的方法名 | main.main |
配置 Format 参数:
consoleConfig := &go_logger.ConsoleConfig{ Format: "%millisecond_format% [%level_string%] %body%" } fileConfig := &go_logger.FileConfig{ Format: "%millisecond_format% [%level_string%] %body%" }
输出结果:
2018-03-23 14:55:07.003 [Critical] this is a critical log!
你只需要配置参数 Format: "% Logger Message 别名%" 来自定义输出字符串格式
beego/logs : github.com/astaxie/beego/logs
欢迎提交意见和代码,联系信息 phachon@163.com
MIT
Create By phachon@163.com
package main; import ( "log" "os" "time" "fmt" ) func main() { //创建输出日志文件 logFile, err := os.Create("./" + time.Now().Format("20060102") + ".txt"); if err != nil { fmt.Println(err); } //
go-logger 是golang 的日志库 ,基于对golang内置log的封装。 用法类似java日志工具包log4j 打印日志有5个方法 Debug,Info,Warn, Error ,Fatal 日志级别由低到高 设置日志级别的方法为:logger.SetLevel() 如:logger.SetLevel(logger.WARN) 则:logger.Debug(....),logger.
首先下载log4go 包 命令:go get github.com/alecthomas/log4go 一,创建loggerUtils.go 工具: package utils import ( logger "github.com/alecthomas/log4go" ) var logger1File = "D:/temp/demo1.log" var Logger1 = logger.
论坛的解决思路 Is it possible to wrap logrus.Logger functions without losing the line number prefix? func Info(args ...interface{}) { if logger.Level >= logrus.InfoLevel { entry := logger.WithFie
https://learnku.com/docs/gorm/2018/logger/3805 Gorm 建立了对 Logger 的支持,默认模式只会在错误发生的时候打印日志。可以通过gorm SetLogger(log logger)方法 改变gorm 打日志的行为。 gorm 中 logger的接口 gorm 中 logger的接口: type logger interface { Print
转载自李文周的博客 logrus介绍 Logrus是Go(golang)的结构化logger,与标准库logger完全API兼容。 它有以下特点: 完全兼容标准日志库,拥有七种日志级别:Trace, Debug, Info, Warning, Error, Fataland Panic。 可扩展的Hook机制,允许使用者通过Hook的方式将日志分发到任意地方,如本地文件系统,logstash,el
def initLogger(): logdir = time.strftime("%Y-%m-%d", time.localtime(time.time())) if not os.path.exists(logdir): os.mkdir(logdir) # logdir = time.strftime("%Y-%m-%d-%H_%M_%S", time
日志记录器(Logger)是日志处理的核心组件。log4j具有5种正常级别(Level)。日志记录器(Logger)的可用级别Level (不包括自定义级别 Level), 以下内容就是摘自log4j API (http://jakarta.apache.org/log4j/docs/api/index.html): static Level WARN WARN level表明会出现潜在错误的情形
一、安装方法: go get github.com/sirupsen/logrus 二、遇到问题: 如果没有翻墙无法下载golang.org/x/sys/unix包, 请参考:https://blog.csdn.net/wsliangjian/article/details/97253595,其他无法下载的golang.org的包均可参照此方法尝试 三、将日志写
package main import ( "log" ) // 使用init 函数,这个函数在main 函数执行之前就可以初始化 // 自定义的日志抬头信息为:时间 + 文件名 + 源代码所在行号(就是log.Ldata | log.Lshortfile) // 通过log.SetFlags 进行设置 func init() { //log.SetFlags(log.Ldate | lo
在我们开发程序后,如果有一些问题需要对程序进行调试的时候,日志是必不可少的,这是我们分析程序问题常用的手段。 日志使用 日志分析,就是根据输出的日志信息,分析挖掘可能的问题,我们使用fmt.Println系列函数也可以达到目的,因为它们也可以把我们需要的信息输出到终端或者其他文件中。不过fmt.Println系列函数输出的系统比较简单,比如没有时间,也没有源代码的行数等,对于我们排查问题,
main.cpp #include "spdlog/sinks/rotating_file_sink.h" #include "spdlog/sinks/stdout_color_sinks.h" #include "spdlog/spdlog.h" #include <iostream> int main() { // logger auto console_sink = std::ma
日志 使用Logger log包定义了Logger类型,该类型提供了一些格式化输出的方法。本包也提供了一个预定义的“标准”logger,可以通过调用函数Print系列(Print|Printf|Println)、Fatal系列(Fatal|Fatalf|Fatalln)、和Panic系列(Panic|Panicf|Panicln)来使用,比自行创建一个logger对象更容易使用。 例如,我们可以像
Go语言标准库log介绍 无论是软件开发的调试阶段还是软件上线之后的运行阶段,日志一直都是非常重要的一个环节,我们也应该养成在程序中记录日志的好习惯。 log Go语言内置的log包实现了简单的日志服务。本文介绍了标准库log的基本使用。 使用Logger log包定义了Logger类型,该类型提供了一些格式化输出的方法。本包也提供了一个预定义的“标准”logger,可以通过调用函数Print系列
Guava提供了很多类似java.util.Collections的静态工具类 Guava中工具类与集合的对应关系如下: 集合接口 来自于JDK/Guava 对应的Guava工具类 Collection JDK Collections2 List JDK Lists Set JDK Sets SortedSet JDK Sets Map JDK Maps SortedMap JDK Maps Qu
本文向大家介绍python实现一个简单的ping工具方法,包括了python实现一个简单的ping工具方法的使用技巧和注意事项,需要的朋友参考一下 继上一篇计算checksum校验和,本章通过socket套接字,struct字节打包成二进制,select返回套接字的文件描述符的结合,实现一个简单的ping工具。 引用: https://docs.python.org/3/library/socke
本文向大家介绍python实现简单日期工具类,包括了python实现简单日期工具类的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python实现简单日期工具类的具体代码,供大家参考,具体内容如下 输出结果如下: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
日志是非常重要的系统文件,管理员每天的重要工作就是分析和查看服务器的日志,判断服务器的健康状态。但是日志管理又是一项非常枯燥的工作,如果需要管理员手工查看服务器上所有的日志,那实在是一项非常痛苦的工作。有些管理员就会偷懒,省略日志的检测工作,但是这样做非常容易导致服务器出现问题。 那么我们有取代的方案吗?有,那就是日志分析工具。这些日志分析工具会详细地查看日志,同时分析这些日志,并且把分析的结果通
1. 介绍 本篇会介绍三个关于分析nginx日志信息的工具。 2. nginx_log_analysis 这个工具是由一位叫LEO的网友提供的,它的博客是http://linux5588.blog.51cto.com/,它是用python语言写的,只是用来分析nginx日志,它的输出比较简单,以IP为主,可以查看每个IP的访问的流量,次数,占比等信息。 先获取这个python文件。 # 下载 $
IIS 6.0 日志导入工具是一个服务器日志分析工具,因为我们对文本内容分析起来非常吃力, 通常第一步是先导入数据库,而手工导入到数据库又是一个费时费力的事情, IIS 6.0 日志导入工具专门针对导入这一步而开发; 其特点如下: 1.针对访问日志量大,单个文件几百MB,或几个GB的日志导入; 2.导入速度非常快,采用OLEDB ODBC底层驱动; 3.采用SQL Server 批量导入接口,快速
本文向大家介绍Python实现一个Git日志统计分析的小工具,包括了Python实现一个Git日志统计分析的小工具的使用技巧和注意事项,需要的朋友参考一下 前言 本文介绍的是利用Python实现的一个小工具,用于分析Git commit log,获得Git Project每个成员的简单行为数据。 Warning:代码量不能代表程序员能力水平! 启动参数 共5个。 Repo地址 Commit 起始日
本文向大家介绍Golang logrus 日志包及日志切割的实现,包括了Golang logrus 日志包及日志切割的实现的使用技巧和注意事项,需要的朋友参考一下 本文主要介绍 Golang 中最佳日志解决方案,包括常用日志包logrus 的基本使用,如何结合file-rotatelogs 包实现日志文件的轮转切割两大话题。 Golang 关于日志处理有很多包可以使用,标准库提供的 log 包功能