golang 程序日志记录

package mainimport ("flag""fmt""log""os""runtime"
)var (logFileName = flag.String("log", "cServer.log", "Log file name")
)func main() {runtime.GOMAXPROCS(runtime.NumCPU())flag.Parse()//set logfile StdoutlogFile, logErr := os.OpenFile(*logFileName, os.O_CREATE|os.O_RDWR|os.O_APPEND, 0666)if logErr != nil {fmt.Println("Fail to find", *logFile, "cServer start Failed")os.Exit(1)}log.SetOutput(logFile)log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)//write loglog.Printf("Server abort! Cause:%v \n", "test log file")}

说明:

一、在主程序启动之前初始化log的格式后,以后用log.xxx 都将记录在初始的cServer.log文件中

二、上面的初始化的格式在log文件显示为:

2013/03/19 10:44:26 main.go:29: Server abort! Cause:test log file
2013/03/19 10:44:27 main.go:29: Server abort! Cause:test log file

三、可以通过log.SetFlags()自定议你想要表达的格式

//Flag可以是以下值,或以下值或的值。Ldate               // 形如 2009/01/23 的日期
Ltime               // 形如 01:23:23   的时间
Lmicroseconds       // 形如 01:23:23.123123   的时间
Llongfile           // 全路径文件名和行号: /a/b/c/d.go:23
Lshortfile          // 文件名和行号: d.go:23

四、设置输出目的地log.SetOutput()

五、os.OpenFile(*logFileName, os.O_CREATE|os.O_RDWR|os.O_APPEND, 0666)这是创建log文件.

  1. 如果log文件不存在,创建一个新的文件os.O_CREATE
  2. 打开文件的读写os.O_RDWR
  3. 将log信息写入到log文件,是继承到当前log文件,不是覆盖os.O_APPEND
  4. log文件的权限位0666(即所有用户可读写)

golang日志输出相关推荐

  1. golang 日志输出

    golang 程序日志记录 package mainimport ("flag""fmt""log""os"" ...

  2. 9 个技巧,解决 K8s 中的日志输出问题

    作者 | 元乙  阿里云存储服务技术专家 导读:近年来,越来越多的同学咨询如何为 Kubernetes 构建一个日志系统,或者是来求助在此过程中遇到一系列问题如何解决,授人以鱼不如授人以渔,于是作者想 ...

  3. 关于如何收集,标准化和集中化处理Golang日志的一些建议

    依赖分布式系统的公司组织和团队经常使用Go语言编写其应用程序,以利用Go语言诸如通道和goroutine之类的并发功能.如果你负责研发或运维Go应用程序,则考虑周全的日志记录策略可以帮助你了解用户行为 ...

  4. 关于收集,标准化和集中化处理Golang日志的一些建议

    依赖分布式系统的公司组织和团队经常使用Go语言编写其应用程序,以利用Go语言诸如通道和goroutine之类的并发功能.如果你负责研发或运维Go应用程序,则考虑周全的日志记录策略可以帮助你了解用户行为 ...

  5. golang debug 配置_新鲜出炉的golang日志库

    新鲜出炉的golang日志记录库 https://github.com/zxysilent/logs​github.com 功能 日志等级 DEBUG.INFO.WARN.ERROR.FATAL 每天 ...

  6. 介绍 Golang 日志处理

    介绍 Golang 日志处理 本文介绍Go语言的Log包及其API,通过示例让你轻松掌握日志处理. 1. 概述 日志文件一般用于记录操作系统或其他软件运行时发生的事件,或通信软件不同用户之间的消息.日 ...

  7. Python之向日志输出中添加上下文信息

    除了传递给日志记录函数的参数(如msg)外,有时候我们还想在日志输出中包含一些额外的上下文信息.比如,在一个网络应用中,可能希望在日志中记录客户端的特定信息,如:远程客户端的IP地址和用户名.这里我们 ...

  8. python日志输出到屏幕,python日志写入文件

    python日志输出到屏幕,python日志写入文件 日志 日志是跟踪软件运行时所发生的事件的一种方法.软件开发者在代码中调用日志函数,表明发生了特定的事件.事件由描述性消息描述,该描述性消息可以可选 ...

  9. 基于单例模式的日志输出(C++)

    原文:https://blog.csdn.net/giser_mxd/article/details/75557410 在软件运行中,系统一般会采用一个持久化的日志系统来记录运行情况.本题你需要实现一 ...

最新文章

  1. App-IOS与Android弱网环境测试
  2. 网摘精灵教程:网站流量爆涨的时空隧道
  3. PyTorch 实现 VAE 变分自编码器 含代码
  4. InvokeHelper,让跨线程访问/修改主界面控件不再麻烦(转)
  5. 【NLP】大模型时代,我们真的不再需要分词了吗?
  6. ZJOI2019游记
  7. 论文共读 | “阳奉阴违”的半监督学习算法 - Virtual Adversarial Training
  8. Gh0st源代码详细剖析
  9. 推流地址 java_Java实现腾讯云直播生成推流地址和播放地址
  10. java新建json 数组_Java创建JSON对象
  11. Jetson TX2之ALSA学习
  12. react + antd table +hooks 如何实现表格序号自增 翻页后序号不从1开始算起
  13. matlab标定投影误差,opencv 角点检测+相机标定+去畸变+重投影误差计算
  14. 复现CLOCs中spconv v1.0 (commit 8da6f96)踩坑记录
  15. MATLAB实现地球表面上两点之间的仰角和方位角计算
  16. springboot通过ITextPDF写入模板并下载
  17. VL31N创建内向交货函数GN_DELIVERY_CREATE及增强字段
  18. 蓝牙协议系列之(五) ATT
  19. Hive sql 每天场景题 41
  20. 内网渗透(十二)之内网信息收集-内网端口扫描和发现

热门文章

  1. 被高中生物骗了这么多年,原来人体内细胞的DNA是有不同的?
  2. 中小学python、人工智能书籍(2022.02.02)
  3. 微信网页授权,并获取用户头像,昵称等基本信息代码实例
  4. python使用协程实现udp_python-socket和进程线程协程(代码展示)
  5. pythonsocket自动化教程_Python 的 Socket 编程教程
  6. APK反编译之APKTOOL的使用
  7. Spring Boot静态资源映射规则
  8. C++|STL学习笔记-map的基本操作(插入,删除,遍历,大到小输出)【仿大佬写法】
  9. Qt工作笔记-undefined reference to `vtable for MyObject'及对moc文件的进一步理解
  10. eslint 换行_ESLint代码风格检测