Java日志打印要点

发布时间:2019-11-19 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java日志打印要点脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

基本概念

  • LOG4j三大件
    logger、apPEnder、layout

  • log等级
    ALL<TRACE<DEBUG<INFO<WARN<ERROR<FATAL<OFF

包及类的logger

  • log4j.logger.<PACKAGE_NamE>=<LEVEL>

  • log4j.logger.<PACKAGE_NAME>.<CLASS_NAME>=<LEVEL>, <LOGGER_NAME>

appender

  • ConsoleAppender

  • FileAppender

    • RollingFileAppender

    • RandomAccessFileAppender

  • Messaging

    • JMSAppender

    • SMTPAppender

  • DB

    • JDBCAppender

    • JPAAppender

    • NoSQLAppender

  • Remote

    • SocketAppender

    • SyslogAppender

layout

  • PatternLayout

  • HTMLLayout

  • XMLLayout

  • JSONLayout

  • SerializedLayout

rolling file设置保留文件大小(可以用在测试环境,避免log堆积占用磁盘空间)

# Root logger option  log4j.rootLogger=INFO, file &nbsp;  # Direct log messages to a log file log4j.appender.file=org.apache.log4j.RollingFileAppender    #redirect to Tomcat logs folder #log4j.appender.file.File=${catalina.home}/logs/logging.log    log4j.appender.file.File=C:\logigng.log  log4j.appender.file.MaxFileSize=10MB  log4j.appender.file.MaxBackupIndex=10 log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

pattern layout参数说明

  • %d{ABSOLUTE}
    打印时间; ABSOLUTE即使用HH:mm:ss,SSS格式

  • %5p
    打印日志级别(ERROR, DEBUG, INFO, etc.); 不满5个字符的以空格填充

  • %t
    打印线程名

  • %c{1}
    打印类及包名(只展示第一层);

  • %M
    打印方法名

  • %L
    打印行号

  • %m
    要打印的消息

  • %n
    换行

  • %highlight{pattern}{style}
    给符合指定格式的添加ANSI颜色

反模式

  • 重复log,比如DAO层的exception抛出去了,还log

  • log的时候还是用换行

  • log东西太多、太长

  • test当中使用log,应该使用assert更合适

  • 异常没有log出来

  • 使用###之类的不统一的格式

  • 打印账户与密码等保密信息

最佳实践

  • 打印时间戳、线程名、类名、流水号、用户id

  • 使用rolling appender+maxFileSize和maxBackupIndex

  • 打印exception记得打印堆栈

  • 生产环境不要打印多余东西

  • 使用参数化,避免字符串拼接

  • logback或log4j2去掉enabled判断

  • static final 修饰

  • log级别要确定好

  • 打印上下文的值

  • 不打印用户名密码等安全保密信息

  • 注意系统磁盘空间+定期清理策略

脚本宝典总结

以上是脚本宝典为你收集整理的Java日志打印要点全部内容,希望文章能够帮你解决Java日志打印要点所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。