Golang下的Log处理
原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com

后端系统中的Log是相当重要的,做过高并发服务的同学都会认同这一点。相对而言,调试已经用处不大了,对于这样的项目,我现在也习惯了这种开发方式,有两个原因:

1.debug只能在开发环境,到产线环境就不灵了。
2.在并行计算下,debug可能无法发现潜在的问题。
有了以前做node.js的经验,放弃debug没有想象中那么可怕,只要我们程序设计合理,结构清晰,日志完整,看到异常信息后基本都可以快速定位问题所在。
做Java的时候有log4j,做.NET程序的时候有log4net, 做Node.js的时候有log4js....上述几个模块用了都不错,因此做Go项目自然选择了Log4go。
话说这个log4go并不完善,而且两年没维护了,白瞎了这么好的名字。比较严重的是程序退出可能有日志没有flush到磁盘上:
1 func main(){
2      log.Debug("....")
3      defer log.Close()
4 }

程序执行后是没有log的,这个问题两年了还没解决,参见:
https://code.google.com/p/log4go/issues/detail?id=8
使用开源项目我是比较看重活跃度的,本想自己写一个模块来解决,后来找到了seelog,试用了一下,还不错,并且各荐配置和习惯和log4x还比较统一。
seelog源码地址:https://github.com/cihub/seelog
seelog支持在console中输出日志时自定义不同的颜色,但是使用ANSI color,在windows cmd下显示乱码,解决方式是安装一个插件:
http://adoxa.altervista.org/ansicon/
解压后需要注入:

ansicon.exe -i

posted on 2014-09-12 14:35 协思 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/zeeman/p/3968348.html

Golang下的Log处理相关推荐

  1. golang下文件锁的使用

    前言 题目是golang下文件锁的使用,但本文的目的其实是通过golang下的文件锁的使用方法,来一窥文件锁背后的机制. 为什么需要文件锁 只有多线程/多进程这种并发场景下读写文件,才需要加锁, 场景 ...

  2. Go语言自学系列 | golang标准库log

    视频来源:B站<golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! ...

  3. Go语言学习笔记—golang标准库log包

    文章目录 一 log简介 二 log简单使用 2.1 log.Print/Println/Printf函数 2.2 log.Panic/Panicf/Panicln函数 2.3 log.Fatal/F ...

  4. linux apache 大文件,Apache下error.log文件太大的处理方法

    Apache下error.log文件太大的处理方法 2019年05月03日 | 萬仟网网络运营 | 我要评论 清除error.log.access.log并限制apache日志文件大小的方法 有个客户 ...

  5. Eclipse启动失败,提示查看.metadata文件夹下的.log文件

    Eclipse启动失败,提示查看.metadata文件夹下的.log文件 附上一些网上通用解决方法,方便以后查找: 尝试方法一:workspace目录下的.metadata目录整个删除.结果:未成功. ...

  6. 下面的log变量记录了云服务器上 当天上传的文件信息 其中第一列是文件名,第二列是文件大小 请编写一个程序,统计出不同类型的 文件的大小总和

    下面的log变量记录了云服务器上 当天上传的文件信息 其中第一列是文件名,第二列是文件大小 请编写一个程序,统计出不同类型的 文件的大小总和 比如: jpeg 9988999 json 324324 ...

  7. 四、日志系统:log文件夹下的log.h和log.cpp——TinyWebServer

    四.日志系统:log文件夹下的log.h和log.cpp 本章是具体的日志系统类的介绍 1. 基础API 介绍一些API用法 (1)fputs #include <stdio.h> int ...

  8. Golang 标准库log的实现

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://gotaly.blog.51cto.com/8861157/1406905 前一篇 ...

  9. log4j屏蔽掉某个包下的log日志打印

    在log4j的配置文件下配置 ## Disable other log log4j.logger.com.summaryday.framework.db=OFF log4j定义了8个级别的log(除去 ...

最新文章

  1. MySQL Innodb日志机制深入分析
  2. Oracle语句总结
  3. 请解释和、|和||的区别?
  4. 猜字游游戏,while执行10次(Python)
  5. keep-alive使用_如何使用Google Keep进行无忧笔记
  6. 易语言程序应用程序错误退出_为什么我退出Google并构建了一个向孩子们教授个人理财的应用程序
  7. 谭浩强c语言规范化的指数形式,C语言程序设计谭浩强第四期末复习重点.docx
  8. Qt文档阅读笔记-RadioButton的基本使用
  9. iPhone Instruments工具使用_检测内存泄露(转)
  10. ASP.NET底层的初步认识与理解
  11. python画三维图-Python基于matplotlib实现绘制三维图形功能示例
  12. python函数myproduct_OpenERP与Python 元编程
  13. 知识点汇总【一】操作系统三十八问
  14. MySQL的timeout那点事
  15. doubango编码及发送流程的疑惑
  16. Logisim-Gates library
  17. cmd 复制文件夹内容
  18. Python办公自动化之Excel报表自动化,看这一篇就够了!
  19. python快速入门豆瓣_python爬虫实践——零基础快速入门(二)爬取豆瓣电影
  20. 从零开始,带你掌握空状态设计的正确方法

热门文章

  1. [译]Java 设计模式之命令
  2. jQuery学习笔记之extend方法小结
  3. (转)MySQL 服务器内存使用
  4. SpringBoot学习之@Configuration注解和@Bean注解
  5. 《DL/T 1476-2015 电力安全工器具预防性试验规程》中的样品名称及试验项目
  6. H5 小代码(实时更新)
  7. Node.js 把图片流送到客户端
  8. DeepEarth中的拖放行为(DragBehavior)
  9. 用户控件(.ascx)调用网页(.aspx)的方法
  10. c++驱动键鼠源码,C++ 驱动打印机源码