log4j2 与 maven

于 2019-05-09 发布

参考

log4j 2 maven

在pom.xml里添加:

1
2
3
4
5
6
7
8
9
10
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.11.2</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.11.2</version>
  </dependency>

log4j2.xml

在src/main目录下新建一个文件夹resources,在里面新建一个log4j2.xml,并_右键resources ➤ Mark Directory as ➤ Resources Root_。由CSDN的参考链接添加以下配置到log4j2.xml:

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
<Configuration status="WARN" monitorInterval="300">
    <properties>
        <property name="LOG_HOME">/var/log</property>
        <property name="FILE_NAME">Thermal</property>
    </properties>
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <RollingRandomAccessFile name="MyFile"
                                 fileName="${LOG_HOME}/${FILE_NAME}.log"
                                 filePattern="${LOG_HOME}/$${date:yyyy-MM}/${FILE_NAME}-%d{yyyy-MM-dd HH-mm}-%i.log">
            <PatternLayout
                    pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="10 MB"/>
            </Policies>
            <DefaultRolloverStrategy max="20"/>
        </RollingRandomAccessFile>
    </Appenders>

    <Loggers>
        <Logger name="mylog" level="trace" additivity="false">
            <AppenderRef ref="MyFile"/>
        </Logger>
        <Root level="error">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

注意更改”LOG_HOME”和”FILE_NAME”后面的内容来配置log文件的位置。

编译时带上log4j2.xml

需要在pom.xml拥有这么一段内容:

1
2
3
4
5
6
7
8
9
10
11
<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <targetPath>${project.build.directory}/classes</targetPath>
            <includes>
                <include>**/log4j2.xml</include>
            </includes>
        </resource>
    </resources>
</build>

程序内使用log4j

1
private static Logger logger = LogManager.getLogger("mylog");

注意mylog是在log4j2.xml里面的Loggers标签定义的。

打包成一个可运行jar包

pom.xml里添加依赖:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-assembly-plugin</artifactId>
			<version>2.5.5</version>
			<configuration>
				<archive>
					<manifest>
						<mainClass>com.xxg.Main</mainClass>
					</manifest>
				</archive>
				<descriptorRefs>
					<descriptorRef>jar-with-dependencies</descriptorRef>
				</descriptorRefs>
			</configuration>
		</plugin>

注意把<mainClass>标签里的com.xxg.Main改成自己的有main函数的class的名字(全路径)。

然后用

1
mvn package assembly:single

就可以打包了。

目录