面试题答案
一键面试-
添加log4j依赖:
- 如果使用Maven,在
pom.xml
中添加以下依赖:
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j - api</artifactId> <version>2.14.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j - core</artifactId> <version>2.14.1</version> </dependency>
- 如果使用Maven,在
-
创建log4j配置文件:
- 一般命名为
log4j2.xml
(也可以是log4j2.properties
,这里以xml
为例),放在src/main/resources
目录下。 - 关键配置如下:
<?xml version="1.0" encoding="UTF - 8"?> <Configuration status="WARN"> <Appenders> <RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/$${date:yyyy - MM - dd}/app-%d{yyyy - MM - dd}-%i.log.gz"> <PatternLayout> <Pattern>%d %p %c{1.} [%t] %m%n</Pattern> </PatternLayout> <Policies> <TimeBasedTriggeringPolicy /> <SizeBasedTriggeringPolicy size="10MB"/> </Policies> <DefaultRolloverStrategy max="10"/> </RollingFile> </Appenders> <Loggers> <Root level="info"> <AppenderRef ref="RollingFile"/> </Root> </Loggers> </Configuration>
- 关键配置项解释:
- RollingFile:定义了滚动文件的相关配置。
fileName
指定当前日志文件路径和名称,filePattern
指定日志文件按时间轮转后的路径和文件名模式,这里按日期分割,并使用gz
压缩归档。 - TimeBasedTriggeringPolicy:这是按时间轮转的策略,默认每天轮转一次。
- SizeBasedTriggeringPolicy:定义了按文件大小进行轮转的策略,这里设置为10MB,即文件达到10MB时也会进行轮转。
- DefaultRolloverStrategy:
max
属性指定最多保留10个归档文件,超过时旧的文件会被删除。
- RollingFile:定义了滚动文件的相关配置。
- 一般命名为
-
在Java代码中使用:
- 在Java类中获取日志记录器:
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class MyClass { private static final Logger logger = LogManager.getLogger(MyClass.class); public void doSomething() { logger.info("This is an info log."); } }