まず、pom.xmlにLog4j2で必要なタグを追加する。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency>
次にartifactId が spring-boot-starter の箇所にLogbackを除外する設定を追加する。
<exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions>
設定変更後のpom.xmlは以下の通り。
* pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>demo</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.8.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
そして、Log4j2のログ出力の設定ファイルの設定をする。
src/main/javaの直下にlog4j2.xmlを配置して、以下のように編集する。
(ログはlogsフォルダ以下に出力するようにする。)
* log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF">
<Properties>
<Property name="app_name">demo</Property>
<Property name="date">%d{yyyy-MM-dd HH:mm:ss.SSS}</Property>
<Property name="daily_log">logs/app_${app_name}_%d{yyyy-MM-dd}.log</Property>
<Property name="monthly_log">logs/app_monthly_${app_name}_%d{yyyy-MM}.log</Property>
<Property name="error_daily_log">logs/app_error_${app_name}_%d{yyyy-MM-dd}.log</Property>
</Properties>
<appenders>
<Console
name="Console"
target="SYSTEM_OUT"
>
<PatternLayout pattern="${date}, [${app_name}], [ %-5level ], %logger{10}, %msg %n" />
</Console>
<RollingFile
name="File"
fileName="logs/app.log"
filePattern="${daily_log}.gz"
>
<PatternLayout pattern="${date}, [${app_name}], [ %-5level ], %logger{10}, %msg %n" />
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
<RollingFile
name="ErrorFile"
fileName="logs/app_error.log"
filePattern="${error_daily_log}.gz"
>
<RegexFilter regex="\[ ERROR \]" />
<PatternLayout pattern="${date}, [${app_name}], [ %-5level ], %logger{10}, %msg %n" />
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
<RollingFile
name="MonthlyFile"
fileName="logs/app_monthly.log"
filePattern="${monthly_log}.gz"
>
<PatternLayout pattern="${date}, [${app_name}], [ %-5level ], %logger{10}, %msg %n" />
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</appenders>
<loggers>
<root level="info">
<appender-ref ref="Console" />
<appender-ref ref="File" />
<appender-ref ref="MonthlyFile" />
<appender-ref ref="ErrorFile" />
</root>
</loggers>
</configuration>
ひとまず、これで設定は完了。
そして、STSのメニューバーの「Run」-「Run As」-「Spring Boot App」をクリックして、Springを起動してLog4j2のログを出力していることを確認してみる。
以下のキャプチャのようにlogsフォルダ以下のlogファイル内容にログが出力されていれば、OK!


0 件のコメント :
コメントを投稿