1. exclude the spring boot default logback and add dependency for log4j2
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</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</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>
2. Add log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="WARN">
<!-- Global Parameter -->
<Properties>
<Property name="pattern">%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n</Property>
<Property name="Log_Path">/opt/project/test</Property>
</Properties>
<Loggers>
<Root level="INFO">
<AppenderRef ref="console"></AppenderRef>
<AppenderRef ref="info_rolling_file"></AppenderRef>
<AppenderRef ref="error_rolling_file"></AppenderRef>
</Root>
<!--<Logger name="com.chaospase.logger" level="INFO" >-->
<!--<AppenderRef ref="file"></AppenderRef>-->
<!--</Logger>-->
</Loggers>
<Appenders>
<Console name="console" target="SYSTEM_OUT" follow="true">
<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<Pattern>${pattern}</Pattern>
</PatternLayout>
</Console>
<!-- Appender from the same source can define multiple RollingFiles, which define the log storage by day -->
<RollingFile name="info_rolling_file" fileName="${Log_Path}/info_project.log"
filePattern="${Log_Path}/info/info_project_%d{MM-dd}_%i.log" append="true">
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<Pattern>${pattern}</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1"/>
<SizeBasedTriggeringPolicy size="5MB"/>
</Policies>
</RollingFile>
<RollingFile name="error_rolling_file" fileName="${Log_Path}/error_sap-oneview-service.log"
filePattern="${Log_Path}/error/error_project_%d{MM-dd}_%i.log" append="true">
<ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<Pattern>${pattern}</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1"/>
<SizeBasedTriggeringPolicy size="5MB"/>
</Policies>
</RollingFile>
<!--<File name="file" fileName="logger.log">-->
<!--<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>-->
<!--<PatternLayout>-->
<!--<Pattern>${pattern}</Pattern>-->
<!--</PatternLayout>-->
<!--<Policies>-->
<!--<SizeBasedTriggeringPolicy size="10 KB" />-->
<!--</Policies>-->
<!--</File>-->
</Appenders>
</configuration>
3. specify the log4j2.xml path in application.yml file.
logging:
config: classpath:log4j2.xml