Notes of Log4j2 base on the previous article.
log framework (Log4j2)
the framework is mad of some important components:
-
log priority: TRACE < DEBUG < INFO < WARN < ERROR < FATAL
The level lower than your set level will not show.
-
where the log output, to console or to file.
-
format of the log.
Add Dependency
add this in the pom.xml
file under your project.
1 2 3 4 5 6 7 8 9 10
| <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.20.0</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j2-impl</artifactId> <version>2.20.0</version> </dependency>
|
Add config file
create a new log4j2.xml
file in source
folder
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| <?xml version="1.0" encoding="UTF-8"?> <Configuration> <Properties> <Property name="LOG_PATTERN">%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %p %m%n</Property> <Property name="APP_LOG_ROOT">c:/temp/logs</Property> </Properties> <appenders> <console name="spring6log" target="SYSTEM_OUT"> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss SSS} [%t] %-3level %logger{1024} - %msg%n"/> </console>
<File name="log" fileName="${APP_LOG_ROOT}/app-framework.log"> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/> </File>
<RollingFile name="RollingFile" fileName="${APP_LOG_ROOT}/app-info.log" filePattern="${APP_LOG_ROOT}/app-info-%d{yyyy-MM-dd}-%i.log" > <LevelRangeFilter minLevel="INFO" maxLevel="INFO" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="$d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/> <Policies> <SizeBasedTriggeringPolicy size="10MB" /> </Policies> <DefaultRolloverStrategy max="10"/> </RollingFile> </appenders> <loggers> <root level="DEBUG"> <appender-ref ref="spring6log"/> <appender-ref ref="RollingFile"/> <appender-ref ref="log"/> </root> </loggers> </Configuration>
|
And then run the previous code, we got
1 2 3 4 5 6
| 2023-02-21 10:50:37 907 [main] DEBUG org.springframework.context.support.ClassPathXmlApplicationContext - Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@1c481ff2 2023-02-21 10:50:38 366 [main] DEBUG org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loaded 1 bean definitions from class path resource [beam.xml] 2023-02-21 10:50:38 466 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'user' Constructor function ran. com.yao.spring6.User@3f28bd56 add ...
|
And then, we found log files in C:\temp\logs
Out put log manually
import packages of log4j2
1 2
| import org.slf4j.Logger; import org.slf4j.LoggerFactory;
|
create object and use it
1 2
| private Logger logger = LoggerFactory.getLogger(TestUser.class); logger.info("# SUCCESS");
|
Author: o_oyao
License: All articles in this blog are licensed under
CC BY-NC-SA 4.0 unless stating additionally.