个人备案的网站可以卖东西么,天津市区县档案部门网站建设指导意见,做电子简历的网站,专业网站建设最新报价文章目录 引言1. 使用SLF4J日志门面规则解释代码示例正例反例 2. 日志文件的保存时间规则解释 3. 日志文件的命名规范规则解释代码示例正例反例 4. 使用占位符进行日志拼接规则解释代码示例正例反例 5. 日志级别的开关判断规则解释代码示例正例反例 6. 避免重复打印日志规则解释… 文章目录 引言1. 使用SLF4J日志门面规则解释代码示例正例反例 2. 日志文件的保存时间规则解释 3. 日志文件的命名规范规则解释代码示例正例反例 4. 使用占位符进行日志拼接规则解释代码示例正例反例 5. 日志级别的开关判断规则解释代码示例正例反例 6. 避免重复打印日志规则解释代码示例正例反例 7. 记录异常信息规则解释代码示例正例反例 8. 谨慎记录日志规则解释 9. 使用warn记录用户输入错误规则解释代码示例正例反例 10. 使用英文描述日志错误信息规则解释代码示例正例反例 总结 引言
日志是软件开发中不可或缺的一部分合理的日志记录可以帮助开发者快速定位问题、监控系统运行状态。本文将深入探讨Java日志规约的最佳实践并通过反例和正例代码来更好地理解和应用这些规则。 1. 使用SLF4J日志门面
规则
应用中不可直接使用日志系统Log4j、Logback中的API而应依赖使用日志框架SLF4J中的API。
解释
SLF4JSimple Logging Facade for Java是一个日志门面框架它提供了统一的API允许应用程序在不修改代码的情况下切换底层日志实现如Log4j、Logback。使用SLF4J可以提高代码的可维护性和灵活性。
代码示例
正例
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;public class Test {private static final Logger logger LoggerFactory.getLogger(Test.class);public void doSomething() {logger.info(This is an info message.);}
}反例
import org.apache.log4j.Logger;public class Test {private static final Logger logger Logger.getLogger(Test.class);public void doSomething() {logger.info(This is an info message.);}
}在反例中直接使用Log4j的API导致代码与具体日志实现耦合难以切换日志框架。 2. 日志文件的保存时间
规则
所有日志文件至少保存15天因为有些异常具备以“周”为频次发生的特点。网络运行状态、安全相关信息、系统监测、管理后台操作、用户敏感操作需要留存相关的网络日志不少于6个月。
解释
日志文件的保存时间应根据业务需求和法律要求来确定。通常日志文件至少保存15天而涉及安全和敏感操作的日志需要保存更长时间如6个月。 3. 日志文件的命名规范
规则 应用中的扩展日志如打点、临时监控、访问日志等命名方式appName_logType_logName.log。
解释
通过规范的日志文件名可以快速识别日志的来源、类型和用途便于日志的管理和查找。
代码示例
正例
force_web_timeZoneConvert.log反例
log.txt在反例中日志文件名过于简单无法快速识别日志的来源和用途。 4. 使用占位符进行日志拼接
规则
在日志输出时字符串变量之间的拼接使用占位符的方式。
解释
使用占位符如{}进行日志拼接可以避免不必要的字符串拼接操作提高性能。
代码示例
正例
logger.debug(Processing trade with id: {} and symbol: {}, id, symbol);反例
logger.debug(Processing trade with id: id and symbol: symbol);在反例中使用字符串拼接会导致性能损耗尤其是在日志级别较高时如INFO、WARN。 5. 日志级别的开关判断
规则
对于trace/debug/info级别的日志输出必须进行日志级别的开关判断。
解释
在输出日志之前进行级别判断可以避免不必要的字符串拼接和方法调用提高性能。
代码示例
正例
if (logger.isDebugEnabled()) {logger.debug(Current ID is: {} and name is: {}, id, getName());
}反例
logger.debug(Current ID is: id and name is: getName());在反例中即使日志级别高于DEBUG仍然会执行字符串拼接和方法调用造成性能浪费。 6. 避免重复打印日志
规则
避免重复打印日志浪费磁盘空间务必在log4j.xml中设置additivityfalse。
解释
additivity属性控制子Logger是否继承父Logger的输出源。设置为false可以避免日志重复输出。
代码示例
正例
logger namecom.taobao.dubbo.config additivityfalseappender-ref refFILE/
/logger反例
logger namecom.taobao.dubbo.configappender-ref refFILE/
/logger在反例中未设置additivityfalse可能导致日志重复输出。 7. 记录异常信息
规则 异常信息应该包括两类信息案发现场信息和异常堆栈信息。
解释
记录异常时应包含案发现场信息如参数值、状态等和异常堆栈信息以便快速定位问题。
代码示例
正例
try {// 业务逻辑
} catch (Exception e) {logger.error(Error processing trade with id: tradeId, e);
}反例
try {// 业务逻辑
} catch (Exception e) {logger.error(Error occurred);
}在反例中未记录异常堆栈信息难以定位问题。 8. 谨慎记录日志
规则
生产环境禁止输出debug日志有选择地输出info日志使用warn记录业务行为信息时注意日志输出量。
解释
过多的日志输出会影响系统性能并增加日志管理的难度。应根据实际需求谨慎记录日志。 9. 使用warn记录用户输入错误
规则
可以使用warn日志级别来记录用户输入参数错误的情况避免用户投诉时无所适从。
解释
使用warn级别记录用户输入错误可以在不频繁报警的情况下提供足够的信息用于问题排查。
代码示例
正例
if (userInput null) {logger.warn(User input is null);
}反例
if (userInput null) {logger.error(User input is null);
}在反例中使用error级别记录用户输入错误可能导致频繁报警。 10. 使用英文描述日志错误信息
规则 尽量用英文来描述日志错误信息如果日志中的错误信息用英文描述不清楚的话使用中文描述即可。
解释
使用英文描述日志错误信息可以提高日志的通用性特别是在国际化团队或海外部署的场景中。
代码示例
正例
logger.error(Failed to process trade: tradeId{}, tradeId);反例
logger.error(处理交易失败tradeId{}, tradeId);在反例中使用中文描述日志错误信息可能导致国际化团队难以理解。 总结
通过遵循日志规约的最佳实践开发者可以编写出高效、易维护的日志代码。
文章转载自: http://www.morning.psyrz.cn.gov.cn.psyrz.cn http://www.morning.pmysp.cn.gov.cn.pmysp.cn http://www.morning.elsemon.com.gov.cn.elsemon.com http://www.morning.xdnhw.cn.gov.cn.xdnhw.cn http://www.morning.tkjh.cn.gov.cn.tkjh.cn http://www.morning.bkqdg.cn.gov.cn.bkqdg.cn http://www.morning.rdqzl.cn.gov.cn.rdqzl.cn http://www.morning.bwrbm.cn.gov.cn.bwrbm.cn http://www.morning.rgtp.cn.gov.cn.rgtp.cn http://www.morning.nyfyq.cn.gov.cn.nyfyq.cn http://www.morning.wgtnz.cn.gov.cn.wgtnz.cn http://www.morning.rfgkf.cn.gov.cn.rfgkf.cn http://www.morning.xjkr.cn.gov.cn.xjkr.cn http://www.morning.mzqhb.cn.gov.cn.mzqhb.cn http://www.morning.srbl.cn.gov.cn.srbl.cn http://www.morning.qbmjf.cn.gov.cn.qbmjf.cn http://www.morning.fksdd.cn.gov.cn.fksdd.cn http://www.morning.mmosan.com.gov.cn.mmosan.com http://www.morning.lltdf.cn.gov.cn.lltdf.cn http://www.morning.nkllb.cn.gov.cn.nkllb.cn http://www.morning.blxlf.cn.gov.cn.blxlf.cn http://www.morning.rmqmc.cn.gov.cn.rmqmc.cn http://www.morning.rnxs.cn.gov.cn.rnxs.cn http://www.morning.rntgy.cn.gov.cn.rntgy.cn http://www.morning.ddgl.com.cn.gov.cn.ddgl.com.cn http://www.morning.ytbr.cn.gov.cn.ytbr.cn http://www.morning.tlfyb.cn.gov.cn.tlfyb.cn http://www.morning.yhjlg.cn.gov.cn.yhjlg.cn http://www.morning.nknt.cn.gov.cn.nknt.cn http://www.morning.sqgqh.cn.gov.cn.sqgqh.cn http://www.morning.rtspr.cn.gov.cn.rtspr.cn http://www.morning.mlycx.cn.gov.cn.mlycx.cn http://www.morning.wtdyq.cn.gov.cn.wtdyq.cn http://www.morning.xknmn.cn.gov.cn.xknmn.cn http://www.morning.mxlwl.cn.gov.cn.mxlwl.cn http://www.morning.tddrh.cn.gov.cn.tddrh.cn http://www.morning.hmfxl.cn.gov.cn.hmfxl.cn http://www.morning.gxtbn.cn.gov.cn.gxtbn.cn http://www.morning.krwzy.cn.gov.cn.krwzy.cn http://www.morning.nkcfh.cn.gov.cn.nkcfh.cn http://www.morning.kbbmj.cn.gov.cn.kbbmj.cn http://www.morning.mnkz.cn.gov.cn.mnkz.cn http://www.morning.lgpzq.cn.gov.cn.lgpzq.cn http://www.morning.datadragon-auh.cn.gov.cn.datadragon-auh.cn http://www.morning.fglxh.cn.gov.cn.fglxh.cn http://www.morning.qptbn.cn.gov.cn.qptbn.cn http://www.morning.slqgl.cn.gov.cn.slqgl.cn http://www.morning.btqqh.cn.gov.cn.btqqh.cn http://www.morning.bppml.cn.gov.cn.bppml.cn http://www.morning.qfkdt.cn.gov.cn.qfkdt.cn http://www.morning.bnbzd.cn.gov.cn.bnbzd.cn http://www.morning.srbfp.cn.gov.cn.srbfp.cn http://www.morning.wpqwk.cn.gov.cn.wpqwk.cn http://www.morning.ssjry.cn.gov.cn.ssjry.cn http://www.morning.gwkwt.cn.gov.cn.gwkwt.cn http://www.morning.wmgjq.cn.gov.cn.wmgjq.cn http://www.morning.sgpny.cn.gov.cn.sgpny.cn http://www.morning.ryztl.cn.gov.cn.ryztl.cn http://www.morning.pnljy.cn.gov.cn.pnljy.cn http://www.morning.lqlhw.cn.gov.cn.lqlhw.cn http://www.morning.nwtmy.cn.gov.cn.nwtmy.cn http://www.morning.bfrsr.cn.gov.cn.bfrsr.cn http://www.morning.mrkbz.cn.gov.cn.mrkbz.cn http://www.morning.lqljj.cn.gov.cn.lqljj.cn http://www.morning.cjwkf.cn.gov.cn.cjwkf.cn http://www.morning.hxlch.cn.gov.cn.hxlch.cn http://www.morning.huarma.com.gov.cn.huarma.com http://www.morning.bktly.cn.gov.cn.bktly.cn http://www.morning.xsfg.cn.gov.cn.xsfg.cn http://www.morning.ymwrs.cn.gov.cn.ymwrs.cn http://www.morning.jqzns.cn.gov.cn.jqzns.cn http://www.morning.khpx.cn.gov.cn.khpx.cn http://www.morning.gqwbl.cn.gov.cn.gqwbl.cn http://www.morning.yzfrh.cn.gov.cn.yzfrh.cn http://www.morning.cykqb.cn.gov.cn.cykqb.cn http://www.morning.tfcwj.cn.gov.cn.tfcwj.cn http://www.morning.dkslm.cn.gov.cn.dkslm.cn http://www.morning.bwznl.cn.gov.cn.bwznl.cn http://www.morning.kryxk.cn.gov.cn.kryxk.cn http://www.morning.srbsr.cn.gov.cn.srbsr.cn