我的看法是:

日志一定要能够起到提供切实有效的信息的作用。

如果作为原有产品开发维护人员,

只要客户给你打个电话,报一下日志中的错误、警告号码或信息,你立即就可以知道具体哪个模块的哪个函数出错了,这是最好的。

没有产品是完美的,一个可以很快定位错误便于修正的产品是一个相对理想的选择。

那种产品卖出去就拉倒了,bug定位很慢,更新补丁不及时的公司,客户在暗叹倒霉的同时,会很生气的,后果会很严重!

我的建议是这样:

例如A模块调用B模块,B模块调用C模块

A模块中日志信息输出格式(假定为log级别,而不是error或fatal级别):

log_A_001

log_A_002

log_A_003

...

B模块中日志信息输出格式:

log_B_001

log_B_002

log_B_003

...

C模块中日志信息输出格式:

log_C_001

log_C_002

log_C_003

...

这样,任何时候,看日志,就可以知道系统里出现了什么问题,可以精确定位到函数级别。

但是,对于公用模块,还需要考虑,是谁调用了它。

由A调用了D 还是 由B调用了D?这种问题怎么办?

可以考虑这样输出:log_D_begin_called by A  或者  log_D_begin_called by B。 换句话说:把调用者的名字传入进来。

如果使用面向对象的程序设计语言,也可以考虑传入调用者的类名称。

还有很重要的一点,那就是:大量输出日志,会导致系统负担很重。

应该允许通过设定文件等进行配置:可以指定专门针对某些模块来特殊输出详细的日志,而其它模块则输出少量的概要性的日志。

如果有可能,日志系统最好可以独立于整个应用,最好可以实现网络写日志方式,以缓解对系统造成的压力。

什么样的日志才是好日志相关推荐

  1. mysql日志文件名称_MySQL 日志文件 说明

    MySQL 5.5 官方文档上有关日志的分类: By default, nologs are enabled. The following log-specific sections provide ...

  2. mysql重做日志恢复数据_MySQL中重做日志,回滚日志,以及二进制日志的简单总结...

    MySQL中有六种日志文件, 分别是:重做日志(redo log).回滚日志(undo log).二进制日志(binlog).错误日志(errorlog).慢查询日志(slow query log). ...

  3. mysql 表空间收缩_【135期】谈谈MySQL中的重做日志,回滚日志,以及二进制日志的区别及各自作用...

    点击上方"Java面试题精选",关注公众号 面试刷图,查缺补漏 >>号外:往期面试题,10篇为一个单位归置到本公众号菜单栏->面试题,有需要的欢迎翻阅 阶段汇总集 ...

  4. mysql之 日志体系(错误日志、查询日志、二进制日志、事务日志、中继日志)...

    一. mysql错误日志: 错误日志记录的事件: a).服务器启动关闭过程中的信息 b).服务器运行过程中的错误信息 c).事件调试器运行一个事件时间生的信息 d).在从服务器上启动从服务器进程时产生 ...

  5. oracle 重做日志内容,Oracle重做日志文件基础

    本文以下所述内容是根据对"Oracle Database Administrator's Guide 11g Release 2 (11.2)" -- " 管理redo ...

  6. 你居然还去服务器上捞日志,搭个日志收集系统难道不香么!

    摘要 ELK日志收集系统进阶使用,本文主要讲解如何打造一个线上环境真实可用的日志收集系统.有了它,你就可以和去服务器上捞日志说再见了! ELK环境安装 ELK是指Elasticsearch.Kiban ...

  7. 使用logrotate切割nginx日志文件,其他日志文件切割类似

    首先安装logrotate 以centos为例 yum -y install logrotate 如果不需要切割其他的日志则把 /etc/logrotate.conf中的 /var/log/wtmp ...

  8. python日志模块_Python之日志处理(logging模块)

    转载自:https://www.cnblogs.com/yyds/p/6901864.html 本节内容 日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logg ...

  9. python log日志_Python中logging日志的四个等级和使用

    1. logging日志的介绍 在现实生活中,记录日志非常重要,比如:银行转账时会有转账记录:飞机飞行过程中,会有个黑盒子(飞行数据记录器)记录着飞机的飞行过程,那在咱们python程序中想要记录程序 ...

最新文章

  1. Android 多点触控 MotionEvent详解
  2. Postgresql使用笔记
  3. Java 10更新汇总,新的编译器通吃主流编程语言
  4. MyBatis 源码分析 - SQL 的执行过程
  5. [Xcode 实际操作]六、媒体与动画-(1)使用图形上下文按一定比例缩放图片
  6. Tableau上面地图与条形图结合_何为计算的详细级别,认识Tableau中的Level of Detail...
  7. 带文件卖面,老坛酸菜面重回超市货架!你会买账吗?京东、淘宝依然屏蔽
  8. Android中文API(134) —— Account
  9. C语言中变量名加括号,为什么在声明变量时C ++允许我们在括号内将变量名括起来?...
  10. BeautifulSoup([your markup]) to this: BeautifulSoup([your markup], lxml) 解决未设置默认解析器的错误...
  11. 2016年考研数学一真题pdf ​​​
  12. python 勒索病毒_lucky 勒索病毒分析与文件解密
  13. 联想启天m410进bios_联想启天M410台式机重装系统win7-win7系统重装
  14. 微信小程序前期申请企业认证、后期提审发布流程
  15. 如何检索论文被引用情况
  16. 抢红包算法之线段切割法的python简单实现
  17. eccv 2018 image caption generation论文导读
  18. 改善技术简历的47条原则
  19. 仿QQ浏览器mac版官网主页 html+css3特效
  20. 编程实现对任意字符串的加密处理

热门文章

  1. #51单片机#数码管静态与动态显示
  2. js 的 sort 函数
  3. 在STM32CubeMX中添加属于自己的板子
  4. \t\t北京 【游玩】水立方 亚洲 最大 室内 嬉水乐园
  5. 探索Qt图像处理的奥秘:从入门到精通
  6. 【Lua学习】Lesson5.程序的时序、线程及任务同步
  7. 【嵌入式学习-STM32F103-USART串口通信】
  8. JDBC连接自定义sqlserver数据库实例名(多个实例)
  9. matlab 数值积分 奇点,一类含奇点函数的数值积分方法
  10. 父亲的祈祷文—— 美国五星上将,麦克阿瑟将军