1.POM依赖说明
<!-- LOGGING begin -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
<version>2.4.1</version>
<scope>runtime</scope>
</dependency>
<!-- 代码直接调用log4j会被桥接到slf4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>${slf4j.version}</version>
<scope>runtime</scope>
</dependency>
<!-- 代码直接调用common-logging会被桥接到slf4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${slf4j.version}</version>
<scope>runtime</scope>
</dependency>
<!-- 代码直接调用java.util.logging会被桥接到slf4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>${slf4j.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>com.googlecode.log4jdbc</groupId>
<artifactId>log4jdbc</artifactId>
<version>1.2</version>
<scope>runtime</scope>
</dependency>
<!-- LOGGING end -->
2.log4j2.xml配置实例 ***是请各位修改为自己的目录
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="error">
<!--先定义所有的appender-->
<appenders>
<!--这个输出控制台的配置-->
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%date{HH:mm:ss,SSS} [%thread] [%level] %logger{1.} - %msg%n"/>
</Console>
<!-- 按时间切分,也可以加入按大小切分 -->
<RollingFile name="RollingFile" fileName="/home/****/webroot/logs/****/****.log"
filePattern="/home/****/webroot/logs/****/***.log.%d{yyyyMMdd}">
<PatternLayout pattern="%date{HH:mm:ss,SSS} [%thread] [%level] %logger{1.} - %msg%n"/>
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
<!-- 按时间切分,也可以加入按大小切分 -->
<RollingFile name="PublicRollingFile" fileName="/home/****/webroot/logs/****/public.log"
filePattern="/home/****/webroot/logs/****/public.log.%d{yyyyMMddHH}">
<PatternLayout pattern="%msg%n"/>
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
<!-- public日志写入到kafka中 -->
<Kafka name="KafkaPublicLogFile" topic="****-public-log">
<PatternLayout pattern="%date %message" />
<Property name="bootstrap.servers">127.0.0.1:9093</Property>
</Kafka>
<!-- 按时间切分,也可以加入按大小切分 -->
<RollingFile name="ApolloRollingFile" fileName="/home/****/webroot/logs/****/apollo.log"
filePattern="/home/****/webroot/logs/****/apollo.log.%d{yyyyMMdd}">
<PatternLayout pattern="%date{HH:mm:ss,SSS} [%thread] [%level] %logger{1.} - %msg%n"/>
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</appenders>
<!--然后定义logger,只有定义了logger并引入的appender,appender才会生效-->
<loggers>
<logger name="com.****.kefu.****" level="INFO" />
<logger name="org.springframework" level="INFO" />
<logger name="com.****.kefu.****.utils.DealLog" level="INFO" additivity="false">
<appender-ref ref="PublicRollingFile"/>
</logger>
<logger name="com.****.kefu.****.utils.DealLog" level="INFO" additivity="false">
<appender-ref ref="KafkaPublicLogFile"/>
</logger>
<logger name="com.****.kefu.****.web.hag" level="INFO" additivity="false">
<appender-ref ref="ApolloRollingFile"/>
</logger>
<!--
<logger name="org.mybatis" level="debug" />
<logger name="com.****.kefu.****.dao" level="DEBUG"/>
<logger name="java.sql" level="DEBUG"/>
-->
<!--建立一个默认的root的logger, 除了上面定义的logger,其他只有warn才会打印-->
<root level="WARN">
<appender-ref ref="RollingFile"/>
<appender-ref ref="Console"/>
</root>
</loggers>
</configuration>