Open mianshiba opened 3 years ago
来源:(20 条消息) Log4j2 的使用:按时间和大小分割日志,并分包输出_夏诗鸢的博客 - CSDN 博客
1、使用到的 jar 包
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.11.0</version></dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.11.0</version></dependency>``` 2、配置文件的设置 将配置文件log4j2.xml放在maven项目的resource路径下。代码如下: ①按时间和大小分割文件 ```null <?xml version="1.0" encoding="UTF-8"?><configuration status="error"> <!-- 先定义所有的appender --> <appenders> <!-- 这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面,作为存档,如果不超过size,则此部分日志保存在web.log里面 --> <RollingFile name="RollingFile" fileName="log4j2/logs/web.log" filePattern="log4j2/logs/$${date:yyyy-MM}/%d{MM-dd-yyyy}-%i.log"> <!-- pattern = "[ 日志级别 | 类名 | 方法名 | 行数 | 线程名 | 区分客户端 | 时间 ] - 日志信息" --> <PatternLayout pattern="[ %level{length=1} | %-20class{1} | %-15M | %-2L | %-2t | %X{5} | %d{yyyy-MM-dd HH:mm:ss} ] %msg%n" /> <Policies> <TimeBasedTriggeringPolicy interval="2 hour" /> <!--多长时间滚动一次 --> <SizeBasedTriggeringPolicy size="10KB" /> <!-- 一个日志文件的最大大小 --> </Policies> <DefaultRolloverStrategy max="20" /> <!-- 文件夹下最多的文件个数 --> </RollingFile> </appenders> <!-- 然后定义logger,只有定义了logger并引入的appender,appender才会生效 --> <loggers> <!-- 建立一个默认的root的logger --> <root level="trace"> <appender-ref ref="RollingFile" /> </root> </loggers></configuration>``` ②按时间和大小分割,并分包打印日志 ```null <?xml version="1.0" encoding="UTF-8"?><configuration status="error"> <!-- 先定义所有的appender --> <appenders> <!-- 这个输出控制台的配置 --> <Console name="Console" target="SYSTEM_OUT"> <!-- 控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) --> <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY" /> <!-- 这个都知道是输出日志的格式 --> <PatternLayout pattern="[ %-20class{1} ] %msg%n" /> </Console> <!-- 这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面,作为存档 --> <RollingFile name="RollingFile-info" fileName="log4j2/info/info.log" filePattern="log4j2/info/$${date:yyyy-MM}/%d{MM-dd-yyyy}-%i.log"> <!-- pattern = "[ 日志级别 | 类名 | 方法名 | 行数 | 线程名 | 区分客户端 | 时间 ] - 日志信息" --> <PatternLayout pattern="[ %level{length=1} | %-20class{1} | %-15M | %-2L | %-2t | %X{5} | %d{yyyy-MM-dd HH:mm:ss} ] %msg%n" /> <Policies> <TimeBasedTriggeringPolicy interval="2 hour" /> <!--多长时间滚动一次 --> <SizeBasedTriggeringPolicy size="10KB" /> <!-- 一个日志文件的最大大小 --> </Policies> <DefaultRolloverStrategy max="20" /> <!--文件夹下最多的文件个数 --> </RollingFile> <RollingFile name="RollingFile-debug" fileName="log4j2/debug/debug.log" filePattern="log4j2/debug/$${date:yyyy-MM}/%d{MM-dd-yyyy}-%i.log"> <!-- pattern = "[ 日志级别 | 类名 | 方法名 | 行数 | 线程名 | 区分客户端 | 时间 ] - 日志信息" --> <PatternLayout pattern="[ %level{length=1} | %-20class{1} | %-15M | %-2L | %-2t | %X{5} | %d{yyyy-MM-dd HH:mm:ss} ] %msg%n" /> <Policies> <TimeBasedTriggeringPolicy interval="2 hour" /> <!--多长时间滚动一次 --> <SizeBasedTriggeringPolicy size="10KB" /> <!-- 一个日志文件的最大大小 --> </Policies> <DefaultRolloverStrategy max="20" /> <!--文件夹下最多的文件个数 --> </RollingFile> <RollingFile name="RollingFile-error" fileName="log4j2/error/error.log" filePattern="log4j2/error/$${date:yyyy-MM}/%d{MM-dd-yyyy}-%i.log"> <!-- pattern = "[ 日志级别 | 类名 | 方法名 | 行数 | 线程名 | 区分客户端 | 时间 ] - 日志信息" --> <PatternLayout pattern="[ %level{length=1} | %-20class{1} | %-15M | %-2L | %-2t | %X{5} | %d{yyyy-MM-dd HH:mm:ss} ] %msg%n" /> <Policies> <TimeBasedTriggeringPolicy interval="2 hour" /> <!--多长时间滚动一次 --> <SizeBasedTriggeringPolicy size="10KB" /> <!-- 一个日志文件的最大大小 --> </Policies> <DefaultRolloverStrategy max="20" /> <!--文件夹下最多的文件个数 --> </RollingFile> </appenders> <!-- 然后定义logger,只有定义了logger并引入的appender,appender才会生效 --> <loggers> <!-- 此处name里面的为对应的包名,包名必须和里面的类的package相同 --> <logger name="com.test.info" level="debug"> <!-- ref的值是对应使用的appenders的值 --> <appender-ref ref="RollingFile-info"/> </logger> <logger name="com.test.debug" level="debug" > <appender-ref ref="RollingFile-debug"/> </logger> <logger name="com.test.error" level="debug"> <appender-ref ref="RollingFile-error"/> </logger> <!-- 建立一个默认的root的logger --> <root level="trace"> <appender-ref ref="Console" /> </root> </loggers></configuration>``` ## 想法
来源:(20 条消息) Log4j2 的使用:按时间和大小分割日志,并分包输出_夏诗鸢的博客 - CSDN 博客
摘录内容
1、使用到的 jar 包