应用日志维护经验

做过一段时间应用程序开发,现在对应用日志维护有一些疑问,我说下我经历的一些历程。

  • 无日志,只记录到tomcat的catalina.out 优点:方便 缺点:太大,查询会慢

  • 按时间记录日志 每天一个log(所有级别的日志在一个文件) 最大保存15天内日志 优点:方便查询,哪一天出问题了,就直接查哪个文件 缺点:日志文件大小不均衡 不易控制总大小 可能某个文件很大 其他文件很小 可能会硬盘爆掉

  • 按固定大小记录日志 每个大小例如 100M 优点:便于控制日志总大小 缺点:查哪一天的日志稍微麻烦点

  • 按时间分文件夹,然后再按固定窗口滚动 优点:可以控制日志总大小,也方便根据日志查找 缺点:目录结构复杂 放入集中式日志分析系统中 需要遍历里面所有可能的文件 觉得会影响效率 优点:可能更方便点

  • 按时间分文件夹,再按日志级别分为error.log,info.log,debug.log,warn.log 然后 每个文件再固定大小窗口滚动 缺点:目录结构复杂 优点:可能更方便点

  • 同上,但是debug.log里会有info.log和error.log ,info.log里会有error.log 类似责任链

我的理想:

  • 维护简单

  • 效率高

  • 日志简洁,有效数据

  • 日志总量可以控制,因为硬盘大小有限

还有一个疑惑

日志级别的输出,生产上应该是info更好么?那这里应该输出哪些内容比较好,目前我是输出的接口调用返回值,以及该接口用到的SQL语句,我觉得SQL语句 有点没必要输出,但是组内人,认为可以方便定位问题,我觉得也没错,目前在配合ELK分析tomcat日志,所以想把这日志一块规范一下,想请教下大家,使用过程的一些经验和心得,谢谢了,不胜感激!

阅读 3.6k
1 个回答

说下我这边的配置:
a.生产环境ERROR,
b.测试环境DEBUG,
c.业务相关的统计上报日志会走udp,上报到指定的日志服务器,做离线日志分析和定时入库,提供给运营侧使用。不会跟程序的执行log打在一起。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏