博客
关于我
Log4j配置详解和实例
阅读量:794 次
发布时间:2023-02-06

本文共 2124 字,大约阅读时间需要 7 分钟。

log4j日志配置详解

1. 输出级别种类

日志输出的级别主要包括以下四种:

  • ERROR(错误):表示严重错误,通常表示程序出现了严重的错误。
  • WARN(警告):表示一般性的警告信息,例如getSession()方法丢失session的情况。
  • INFO(信息):表示一般需要显示的信息,例如用户登录或注销时的提示。
  • DEBUG(调试):表示程序的调试信息,通常用于调试阶段。

2. 日志信息输出目的地

通过配置,可以指定日志信息输出到不同的地方。常见的输出目的地包括:

  • 控制台:通过org.apache.log4j.ConsoleAppender实现。
  • 文件:通过org.apache.log4j.FileAppender实现。
  • 滚动文件:通过org.apache.log4j.DailyRollingFileAppender实现,每天产生一个新的日志文件。
  • 滚动文件(按大小定频率滚动):通过org.apache.log4j.RollingFileAppender实现,当文件达到指定大小时产生新的文件。
  • 流输出:通过org.apache.log4j.WriterAppender实现,将日志信息以流格式发送到指定的地方。

3. 日志信息格式配置

日志信息的格式可以通过指定不同的布局模式来配置。常见的布局模式包括:

  • HTMLLayout:以HTML表格形式布局。
  • PatternLayout:可以灵活地指定布局模式。
  • SimpleLayout:包含日志信息的级别和信息字符串。
  • TTCCLayout:包含日志产生的时间、线程、类别等等信息。

通过配置ConversionPattern,可以定义日志信息的具体格式。例如:ConversionPattern=%d{ABSOLUTE} %5p %c{<div></div> 1}:%L - %m%n

4. 控制台选项

控制台输出可以通过以下配置进行定制:

  • Threshold:指定日志消息的输出最低层次。默认为DEBUG级别。
  • ImmediateFlush:默认为true,表示所有消息都会被立即输出。
  • Target:默认为System.out,表示输出到控制台。

5. 文件appender选项

文件appender的配置包括:

  • Threshold:指定日志消息的输出最低层次。默认为DEBUG级别。
  • ImmediateFlush:默认为true,表示所有消息都会被立即输出。
  • File:指定消息输出到文件。例如File=mylog.txt。
  • Append:默认为true,表示消息会被追加到文件中;false表示消息会覆盖文件内容。
  • MaxFileSize:指定文件的最大大小。例如MaxFileSize=100KB。
  • MaxBackupIndex:指定可以产生的滚动文件的最大数。例如MaxBackupIndex=2。

6. 滚动文件appender选项

滚动文件appender的配置包括:

  • Threshold:指定日志消息的输出最低层次。默认为DEBUG级别。
  • ImmediateFlush:默认为true,表示所有消息都会被立即输出。
  • File:指定消息输出到文件。例如File=mylog.txt。
  • Append:默认为true,表示消息会被追加到文件中;false表示消息会覆盖文件内容。
  • MaxFileSize:指定文件的最大大小。例如MaxFileSize=100KB。
  • MaxBackupIndex:指定可以产生的滚动文件的最大数。例如MaxBackupIndex=2。

7. 日志信息格式中的符号含义

日志信息格式中常用的符号及其含义包括:

  • %p:输出日志信息的优先级(DEBUG、INFO、WARN、ERROR、FATAL)。
  • %d:输出日志时间点的日期或时间,默认格式为ISO8601。例如:%d{yyy-MM-dd HH:mm:ss.SSS}。
  • %r:输出自应用启动到输出该log信息耗费的毫秒数。
  • %c:输出日志信息所属的类目,通常是所在类的全名。
  • %t:输出产生该日志事件的线程名。
  • %l:输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合。
  • %x:输出和当前线程相关联的NDC嵌套诊断环境。
  • %%:输出一个“%”字符。
  • %F:输出日志消息产生时所在的文件名称。
  • %L:输出代码中的行号。
  • %m:输出代码中指定的消息,产生的日志具体信息。
  • %n:输出一个回车换行符。Windows平台为/r/n,Unix平台为/n。

8. 格式化字符串的宽度和对齐方式

通过在格式化字符串中添加修饰符,可以控制输出的最小宽度、最大宽度和对齐方式。例如:

  • %20c:指定输出category的名称最小的宽度是20,右对齐。
  • %-20c:指定输出category的名称最小的宽度是20,左对齐。
  • %.30c:指定输出category的名称最大的宽度是30,截断左边多出的字符。
  • %20.30c:如果category的名称小于20,就补空格并右对齐;如果大于30,则截断左边多出的字符。

通过合理配置日志输出目的地、日志格式以及控制台选项,可以实现对日志信息的精确控制和管理。

转载地址:http://edufk.baihongyu.com/

你可能感兴趣的文章
LNK2005: _DllMain@12 already defined in LIBCMTD.lib(dllmain.obj)
查看>>
LNK2019无法解析的外部符号 public: static struct cv::Ptr class cv::xfeatures2d::SURF问题解决
查看>>
LNMP
查看>>
lnmp mysql 10038_LNMP环境搭建MySQL篇_MySQL
查看>>
LNMP 软件下载安装
查看>>
LNMPA1.6部署记录(Ubuntu)
查看>>
LNMP与LAMP的工作原理
查看>>
LNMP安装与配置
查看>>
LNMP安装了哪些软件?安装目录在哪?
查看>>
LNMP安装成功的界面
查看>>
LNMP架构 nginx默认虚拟主机
查看>>
LNMP架构(Nginx防盗链、Nginx访问控制、Nginx解析php相关配置、Nginx代理)
查看>>
Lnmp架构之PHP
查看>>
LNMP架构部署实战(附LNMP源码包和CRUD测试Web网站)
查看>>
LNMP源码编译安装(附CentOS6、RedHat6、7虚拟机环境)
查看>>
LNMP配置优化
查看>>
Loaddata 未正确处理时间戳和时区
查看>>
loaded the "XXXView" nib but the view outlet was not set 解决方案
查看>>
Loading class 'com.mysql.jdbc.Driver'. This is deprecated
查看>>
LoadRunner 使用介绍
查看>>