まず、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 件のコメント :
コメントを投稿