Log4j2 TcpSocketServer 日志集中打印
来源:互联网 发布:win10优化用什么软件好 编辑:程序博客网 时间:2024/05/16 11:53
在网上找了好久都是基于log4j1的,官方网站也只是提到了客户端的配置,搞了好久终于做了一个基于log4j2的日志集中访问的日志服务器。(网上其它都是copy来copy去的,本示例绝对全网首发)
具体步骤:
1。引入log4j-api-2.1.jar;log4j-core-2.1.jar两个jar包
2.配置log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<!-- Appenders 输出目的地 -->
<Appenders>
<!-- 配置日志输出文件名字 追加读写 host地址 端口 -->
<Socket name="system" host="localHost" port="5001" >
<!-- 输出格式 序列布局-->
<SerializedLayout />
<!-- <PatternLayout pattern=" [%t] %-5level %logger{36} %L- %msg%n" /> -->
<!-- <PatternLayout pattern=" [%t] %-5level %logger{36} %L- %msg%n" /> -->
</Socket>
<!-- 控制台输出 -->
<Console name="STDOUT" target="SYSTEM_OUT">
<!-- 输出格式 布局-->
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</Console>
</Appenders>
<Loggers>
<!-- debug级别 -->
<Root level="debug">
<AppenderRef ref="system"/>
<AppenderRef ref="STDOUT"/>
</Root>
<Logger name="apiall" level="info" additivity="false">
<AppenderRef ref="system" />
</Logger>
</Loggers>
</Configuration>
3.配置log4j2的服务器端,创建画横线的3个文件即可。
log4j-api-2.1.jar
log4j-core-2.1.jar
log4j2.xml
4.配置服务器端的log4j2.xml(当然可以改为其它名字) 。 我这里是输出到D:/logs/log4j2test.log文件里了。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<!-- Appenders 输出目的地 -->
<Appenders>
<!-- 控制台输出 -->
<Console name="STDOUT" target="SYSTEM_OUT">
<!-- 输出格式 布局-->
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</Console>
<File name="MyFile" fileName="D:/logs/log4j2test.log">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %C{2} (%F:%L) %L- %msg%n" />
</File>
</Appenders>
<Loggers>
<!-- debug级别 -->
<Root level="debug">
<AppenderRef ref="MyFile"/>
<AppenderRef ref="STDOUT"/>
</Root>
<Logger name="apiall" level="ERROR" additivity="false">
<AppenderRef ref="MyFile" />
</Logger>
</Loggers>
</Configuration>
5. 执行服务器端Main函数 开启进程 5001端口(一定要与客户端对应)
java -cp log4j-api-2.1.jar;log4j-core-2.1.jar org.apache.logging.log4j.core.net.server.TcpSocketServer 5001 log4j2.xml
6.编写客户端测试类,并执行
package com.atzy.log;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.Logger;
public class Log4j2RemoteTest {
static Logger logger = (Logger) LogManager.getLogger ("apiall");
public static void main(String[] args) {
logger.error("this is log4j2 remote test error");
logger.debug("this is log4j2 remote test debug");
logger.info("this is log4j2 remote test info");
logger.trace("this is log4j2 remote test trace");
}
}
7.查看日志输出 。因为我设置的info级别的所以只打印了info以上级别的
8.总结::
到此已经成功使用log4j2集中进行日志管理了。记录下来整个过程。欢迎拍砖。。。。
- Log4j2 TcpSocketServer 日志集中打印
- 使用log4j2打印日志
- idea中使用log4j2打印日志
- log4j2日志异步打印 (3)
- log4j2打印出spring和struts2的日志
- log4j2配置mybatis日志
- log4j2 按天分日志
- Java日志-Log4J2
- log4j2 日志配置
- Log4j2实现异步日志
- LOG4J2 异步日志
- SpringBoot - 日志集成 Log4j2
- log4j2日志配置
- log4j2 按天分日志
- log4j2 日志配置实战
- 日志学习:SLF4J & Log4J2
- Log4j2日志配置
- springboot日志体系---log4j2
- 移动数组指定关键字到数组的第一个
- android UiAutomator使用多线程监控手机内存和cpu使用并存入数据库中
- 《effective c++》学习笔记(一)
- Air Raid(匈牙利)
- Python的注释
- Log4j2 TcpSocketServer 日志集中打印
- Android开发 第13课 使用Intent实现页面跳转
- boyqian的CSDN博客第一篇
- SpringBoot+Maven添加本地jar包并package可执行jar包的方法
- 书摘|什么是大数定律
- 程序员常用的技术网站
- 算法面试题collect
- 数据隔离级别
- XListView+数据库