log4j2测试实例-socket集中打印示例

JAVA学习网 2017-09-26 19:03:04

1、需求背景

因为公司最近搭建一个日志集中管理平台,要求各个系统的日志都需要传送到统一的平台上,所以基于此,研究了一下log4j2的socket。

 

2、准备材料

需要log4j2的两个jar包:log4j-api-2.1.jar  和  log4j-core-2.1.jar  。(版本需要一直,特别是服务器上的jar  和  客户端的jar要保持一致)

3、log4j2的客户端配置

直接在 IDE中创建java工程。在根目录src下添加log4j2.xml文件。

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <Configuration>
 3   <Appenders>
 4     <Socket name="socket" host="IP" port="8086" >
 5         <SerializedLayout />
 6     </Socket>
 7     <!--在ide中,打印到控制台-->
 8     <Console name="console" target="SYSTEM_OUT">
 9       <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
10     </Console>
11   </Appenders>
12   <Loggers>
13     <Root level="info">
14         <AppenderRef ref="socket"/>
15           <AppenderRef ref="console"/>
16     </Root>
17     <Logger name="app" level="info" additivity="false">
18         <AppenderRef ref="socket" />
19     </Logger>
20   </Loggers>
21 </Configuration>
log4j2.xml

创建客户端测试java类Log4j2SocketTest

 1 import org.apache.logging.log4j.LogManager;
 2 import org.apache.logging.log4j.core.Logger;
 3 
 4 public class Log4j2SocketTest {
 5     static Logger logger = (Logger) LogManager.getLogger("app");
 6     static Logger logger_default = (Logger) LogManager.getLogger();
 7 
 8     public static void main(String[] args) {
 9         logger.debug("logger.debug....");
10         logger.info("logger.info....");
11         System.out.println("another");
12             logger_default.debug("logger_default.debug");
13         logger_default.info("logger_default.info");
14     }
15 }  
Log4j2SocketTest

4、log4j2的服务端接收日志模拟器配置

这个只是模拟接收的服务器,作用是打印到文件中,方便我们查看服务器端收到的从客户端发来的内容。

把这三个文件放到同一个目录下:log4j-api-2.1.jar  、  log4j-core-2.1.jar  和 log4j2.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <Configuration>
 3   <Appenders>
 4     <!-- 控制台输出 -->
 5 <File name="MyFile" fileName="D:/logs/log.log">  
 6             <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %C{2} (%F:%L) %L- %msg%n" />  
 7     </File> 
 8   </Appenders>
 9   <Loggers>
10     <Root level="debug">
11       <AppenderRef ref="MyFile"/>
12       <AppenderRef ref="STDOUT"/>
13     </Root>
14   </Loggers>
15 </Configuration>
log4j2.xml

这三个文件放好之后,我们启动服务器,如下

java -cp log4j-api-2.2.jar;log4j-core-2.2.jar org.apache.logging.log4j.core.net.server.TcpSocketServer 8085 log4j2.xml

注:linux下jar之间用冒号‘:’,windows下用分好‘;’

5、这样就可以了,在ide中执行客户端的日志打印,同时会上传到服务器上。

 

阅读(798) 评论(0)