LOG使用规范(整理)
发布网友
发布时间:2023-07-14 07:02
我来回答
共1个回答
热心网友
时间:2024-10-23 22:42
在开发B/S系统时,对于LOG,需要关注:
本文主要从这3个方面进行说明,重点说明日志输出的使用
日志的采集和存储
对于目前存储日志,主要存在2种方式:
日志工具的选择
推荐使用 SLF4J (Simple Logging Facade for Java)作为日志的api,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。与使用apache commons-logging和直接使用log4j相比,SLF4J提供了一个名为参数化日志的高级特性,可以显著提高在配置为关闭日志的情况下的日志语句性能
可以看出SLF4J的方式一方面更简略易读,另一方面少了字符串拼接的开销,并且在日志级别达不到时(这里例子即为设置级别为debug以上),不会调用对象的toString方法。
日志输出级别(由高到低)
推荐使用debug,info,warn,error级别即可,对于不同的级别可以设置不同的输出路径,如debug,info输出到一个文件,warn,error输出到一个带error后缀的文件
日志API规范
如果不加 isXxxEnabled() 判断,test()在info级别下也会执行。
这种方法总是会打印两次相同的 stack trace信息,因为有些地方会捕捉MyCustomException异常,然后输出导致问题的日志信息。
但有时基于某些原因我们真的想log异常信息怎么办?很过见多的log语句有一半以上都是错的,
如:
上面只有G、L是对的,L的处理方式更好一些
因为对于非开发人员掌控的环境(无法做DEBUG),记录方法调用、入参、返回值的方式对于排查问题会有很大帮助。
你能确保request对象不是NULL吗?如果request为null,就会抛出NullPointerException。
为什么不包含 message type, message id, etc,包含个message content很难吗?另一个anti-pattern是magic-log。
有些开发人员为了自己查找信息方便,输出类似“&&&!#”的Log,而不是“Message with XYZ id received”。
最后,Log 不要涉及密码及个人信息(身份证、银行卡号etc)
配置规范
作者 @九都散人
2015 年 11月 22日
LOG使用规范(整理)
日志的采集和存储 对于目前存储日志,主要存在2种方式:日志工具的选择 推荐使用 SLF4J (Simple Logging Facade for Java)作为日志的api,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。与使用apache commons-logging和直接使用log4j相比,SLF4J提供了一...
常用对数必须简写吗
常有对数必须简写。ISO 80000 规范建议 log10(x)应该写成lg (x),loge(x)应该是 ln (x)。常用对数的一般表示方法为 log x {displaystyle log x} ,或简写成 lg x {displaystyle lg x} ,正式写法是 log 10 x {displaystyle log _{10}x} ;而常用对数逆函数...
Golang日志库 log
使用`log`库,首先需要明确的是,这个库不需要额外安装,直接使用即可。默认情况下,日志输出到标准错误,并且每条日志前自动包含日期和时间戳。`log`库提供了丰富的功能,包括格式化输出、添加前缀、设置选项等。例如,使用`log.Prefix`方法可以为日志添加一个前缀,增强日志的可读性。同时,通过`log.SetF...
前端代码规范 - 日志打印规范
前端项目中,console对象用于日志输出。不同等级的日志使用不同的console方法,如console.log(信息日志)、console.error(错误日志)。为了统一管理日志输出,可以封装一个日志工具,简化操作。实现一个日志工具,可以提供日志等级控制、格式化和收集日志等功能。在生产环境中,通过后端服务器收集和分析日志是常见...
借助babel我是这样规范console.log的
console.log(`name:${name}\nlocation:${location}`);path.node.arguments.unshift({type:'StringLiteral',value:`[${name}${location}]`})}},},};};借助webpack引入babel-loader和我们的插件,如下配置//webpack.config.jsconstconsolePrefix=require('../lib/index')...module:{rules:[{te...
文件后缀名的意思
avi 一种使用Microsoft RIFF规范的Windows多媒体文件格式,用于存储声音和移动的图片 bak 备份文件,一般是被自动或是通过命令创建的辅助文件,它包含某个文件的最近一个版本,并且具有于该文件相同的文件名 bas Basic 语言源程序文件,可编译成可执行文件,目前使用Basic开发系统的是Visual Basic bat 批处理文件,在MS-DOS...
mapinfo 7.0面符号文件名叫什么、文件后缀名是什么、路径是什么?谢谢...
.avi:一种使用Microsoft RIFF规范的Windows多媒体文件格式,用于存储声音和移动的图片 .bak:备份文件,一般是被自动或是通过命令创建的辅助文件,它包含某个文件的最近一个版本,并且具有于该文件相同的文件名 .bas Basic:语言源程序文件,可编译成可执行文件,目前使用Basic开发系统的是Visual Basic .bat:批处理文件,在...
log.info代码扫描不过
你好,你是想问log.info代码扫描不过怎么办吗?针对log.info代码扫描不过,可以采取以下措施:1、检查log.info代码中的语法和逻辑,确保代码能够正常运行。2、参考编码规范和最佳实践,对代码进行修改和优化。3、使用静态代码分析工具或安全扫描工具,对代码进行全面的安全检测和漏洞扫描。4、对log.info代码...
高中函数题
化简结果为sin10 2、空集 3、(0,π/4)4、没看懂 5、sinQ+cosQ=k,sinQcosQ=k+1 (sinQ+cosQ)^2=k^2=1+2sinQcosQk 1+2(k+1)=k^2,k1=-1,k2=3(舍去)原方程为x^2+x=0 x1=0,x2=-1,即sinQ=0,cosQ=-0,Q=π 6,题目的的不规范,log的底数呢?还是要写lg?
Git操作指南:多人协作提交代码的规范
进行rebase前,若本地有修改,完成rebase后,修改会被还原。使用TortoiseGit时,可选择stash保留修改,避免数据丢失。rebase后,会提示pop stash,恢复修改。使用pull提交记录时间凌乱,显示本地提交顺序,而网页上的log是按照时间从新到旧排列的。调整log排序方式,点击标题栏切换排序,但图形化显示可能需要...