Fatal 系列函数(log.Fatalln)用来写日志消息,然后使用 os.Exit(1)终止程序。
Panic 系列函数(log.Panicln)用来写日志消息,然后触发一个 panic。
日志记录器是多 goroutine 安全的

// This sample program demonstrates how to create customized loggers.
package mainimport ("io""io/ioutil""log""os"
)var (Trace   *log.Logger // Just about anythingInfo    *log.Logger // Important informationWarning *log.Logger // Be concernedError   *log.Logger // Critical problem
)func init() {file, err := os.OpenFile("errors.txt",os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)if err != nil {log.Fatalln("Failed to open error log file:", err)}Trace = log.New(ioutil.Discard,"TRACE: ",log.Ldate|log.Ltime|log.Lshortfile)Info = log.New(os.Stdout,"INFO: ",log.Ldate|log.Ltime|log.Lshortfile)Warning = log.New(os.Stdout,"WARNING: ",log.Ldate|log.Ltime|log.Lshortfile)Error = log.New(io.MultiWriter(file, os.Stderr),"ERROR: ",log.Ldate|log.Ltime|log.Lshortfile)
}func main() {Trace.Println("I have something standard to say")Info.Println("Special Information")Warning.Println("There is something you need to know about")Error.Println("Something has failed")
}

首先为 4 个日志等级声明了 4 个 Logger 类型的指针变量;

其次使用 log 包的 New 函数, 创建并正确初始化四个Logger 类型的值,函数 New 会返回新创建的值的地址,赋值给四个变量。

最后直接调用Trace.Println

Logger.New函数的声明:

// New 创建一个新的 Logger。
// out 参数设置日志数据将被写入的目的地
// 参数 prefix 会在生成的每行日志的最开始出现
// 参数 flag 定义日志记录包含哪些属性
func New(out io.Writer, prefix string, flag int) *Logger {
return &Logger{out: out, prefix: prefix, flag: flag}
}

ioutil.Discard 是一个 io.Writer,所有的 Write 调用都不会有动作,但是会成功返回;

io.MultiWriter 可以同时向多个 Writer 做输出。

Golang的日志记录器相关推荐

  1. golang xorm 自定义日志记录器,使用zap实现日志输出、切割日志

    目录 1.准备并下载好需要的包 2. 连接postgresql数据库 3. zap日志工具 4.实现xorm 自定义日志记录器 5.使用 完整代码 1.准备并下载好需要的包 xorm.io/xorm ...

  2. Golang高性能日志库zap + lumberjack 日志切割组件详解

    文章篇幅较长,可以先收藏防止迷路~ 目录 zap日志库 1. why zap? 2. 简单使用 3. 自定义logger例子 4. Gin项目使用zap 6. lumberjack 日志切割组件 za ...

  3. Tomcat源码分析(六)--日志记录器和国际化

    本系列转载自 http://blog.csdn.net/haitao111313/article/category/1179996 日志记录器挺简单的,没有很多东西,最主要的就是一个Logger接口: ...

  4. 日志库EasyLogging++学习系列(6)—— 日志记录器

    所有的日志都是由日志记录器完成的,日志记录器使用唯一的 ID(大小写敏感)来标识.在 Easylogging++ 中默认了三个现有的日志记录器: 默认日志记录器,其 ID 为:default 性能日志 ...

  5. logback日志记录器讲解

    我们看一下日志记录器的支持,logback,既支持log4j,也支持logback,找到我们的pom文件,然后看一下他的注入包,在这里我们可以看到有log4j的jar包,有slf4j的,还有logba ...

  6. 优雅地记录Python程序日志2:模块组件化日志记录器

    本文摘自:https://zhuanlan.zhihu.com/p/32043593 本篇将会涉及: logging的各个模块化组件 构建一个组件化的日志器 logging的模块组件化 在上一篇文章中 ...

  7. tomcat(7)日志记录器

    [0]README 0.1)本文部分文字描述转自:"深入剖析tomcat",旨在学习 "tomcat的日志记录器" 的基础知识: 0.2)intro to 日志 ...

  8. Log4--Java日志记录器

    Log4–Java日志记录器 一.Log4 Log4j是Apache的一个开源项目,它允许开发者以任意间隔输出日志信息..主要分为两部分:一是appender,是输出日志的方式:二是logger,是具 ...

  9. Golang学习日志 ━━ LiteIDE的主要配置

    用LiteIDE开发golang半年换到VSCode,vs用了一年多后,最近又用回LiteIDE,感觉还是针对性强的IDE用起来舒适,界面什么不重要. 我个人一般什么东西都喜欢用默认配置,能不改的就不 ...

最新文章

  1. 用欧几里得算法求最大公约数_欧几里得算法:GCD(最大公约数),用C ++和Java示例解释...
  2. FPGA配置模式(Altera版)
  3. 使用Windows命令行启动服务
  4. DOM之城市二级联动
  5. UVA11375火柴(递推+大数)
  6. 黑星什么意思_星月菩提黑星海南料什么意思
  7. Web移动应用调试工具——Weinre
  8. java 隐藏了什么_JAVA程序中封装与隐藏是什么意思
  9. 孙丕恕:应把云计算大数据融在一起 降低社会运营成本
  10. 信息学奥赛一本通(1143:最长最短单词)
  11. 我们活在世界上,不是为了求人们原谅。
  12. 写一个centos字符界面下的电量显示脚本
  13. BZOJ 3404: [Usaco2009 Open]Cow Digit Game又见数字游戏(博弈论)
  14. nexus+7+android+5.0++wifi+代理,谷歌Nexus5吃上安卓8.0:除了WiFi全不能正常工作
  15. 如何修改MySQL已有表的字符集
  16. 目录遍历及敏感信息泄露原理及案例(实验操作)
  17. FLEX中Tree默认展开全部节点
  18. Linux下查看NVIDIA的GPU使用情况
  19. xampp mysql关机意外_xampp运行MySQL shutdown unexpectedly解决方法
  20. hexo之Volantis主题美化

热门文章

  1. 微软修复Windows 10周年更新KB3194496累积更新安装问题
  2. python argpare 模块的简单用法
  3. 记与公司内网微博的谈话
  4. SHLL脚本从1到100自加
  5. SQL Server根据访问历史日志分析提供优化
  6. 无限的童年回忆---赣州人的童年
  7. why is pc important for university students?
  8. 可能没有很好的重工业转型的case
  9. 怎样查看rpm安装包的安装路径
  10. swift hidesBottomBarWhenPushed 设置界面