log4j2 日志推送

protocol 指定类型: tcp udp 默认tcp
charset 指定输出字段数据
JsonLayout 是否已json 格式推送 (接收到位json格式)

log4j2 配置

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <!-- Appenders 输出目的地 -->
  <Appenders>
  	<!-- 配置日志输出文件名字     追加读写     host地址  端口    -->
    <Socket name="A1" host="localHost" port="6000" protocol="UDP">
    	<!-- 输出格式  序列布局-->
      <!-- <JsonLayout compact="true" eventEol="true" /> -->
            <PatternLayout charset ="message"/>
    </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="A1"/>
      <AppenderRef ref="STDOUT"/>
    </Root>
  </Loggers>

客户端

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;


/**
 * @see log4j 2.0 简单的配置使用一个文件Appender
 * @author Herman.Xiong
 * @date 2014年7月21日 14:32:55
 */
public class LogManagerTest {
	/**
	 * 配置日志级别为debug,输出位置为控制台和文件
	 */
	private static Logger log = LogManager.getLogger(LogManagerTest.class);
	
	public static void main() {
		log.info("传输数据1。。。。。。。。。。");
		log.info("传输数据2。。。。。。。。。。");
		log.exit();
	}
}

服务端(tcp)


import java.io.ObjectInputStream;
import java.net.Socket;
 
public class LogRunner implements Runnable{
	 private ObjectInputStream ois;
 
     public LogRunner(Socket client) {
         try {
              this.ois = new ObjectInputStream(client.getInputStream());
         } catch (Exception e) {
        	 e.printStackTrace();
         }
     }
 
	 public void run() {
	     try {
	         while (true) {
	        	 Object obj= ois.readObject();
	             System.out.println(obj.toString());
	             System.out.println("===================================");
	         }
	     } catch(java.io.EOFException e) {
	         //读取的时候到达尾端抛出的异常,屏蔽掉
	     } 	catch (Exception e) {
	    	 e.printStackTrace();
	     } finally {
	     }
	 }
}





import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

import org.apache.log4j.Logger;

 
public class TestServer {
    public static void main(String[] args) throws IOException {
    	int port = 6000;
    	ServerSocket socket = new ServerSocket(port);
    	Logger logger = Logger.getLogger(TestServer.class);
    	logger.info("接收端已开启。。。。。。"+port);
        while (true) {
	        Socket client = socket.accept();
	        Thread t = new Thread(new LogRunner(client));
	        t.start();
	        System.out.println("接收日志成功。。。。。");
        }
	}
}

udp 服务端


import java.net.*;
import java.io.*;
import java.util.*;
 
public class UDPServer {
	public static void main(String[] args){
//		new UDPServer().service();
		new UDPServer().receiver();
	}	
	
	public static void receiver() {
        new Thread() {
            @Override
            public void run() {
                // UDP接收端
                DatagramSocket ds = null;
                try {
                    /*
                     * 接收端只需要端口,注意与发送端保持一致
                     */
                    ds = new DatagramSocket(6000);
                    // 定义将UDP的数据包接收到什么地方
                    byte[] buf = new byte[5120];
                    // 定义UDP的数据接收包
                    DatagramPacket dp = new DatagramPacket(buf, buf.length);
                    while (true) {
                        // 接收数据包
                        ds.receive(dp);
                        String string = new String(dp.getData(), 0, dp.getLength());
                        System.out.println("Java UDP:" + dp.getLength() + "->" + string);

                    }
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    if (ds != null) {
                        ds.close();
                    }
                }
            }
        }.start();
    }
}

接收数据明细
这里写图片描述

所需jar(maven) log4j-core.xx.jar log4j-api.xxx.jar

  <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>2.6.2</version>
  </dependency>
  <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>2.6.2</version>
  </dependency>

亲 博主小程序 开发不易 能顺手-----------------微信扫码 ------帮忙增加个访问量吗 非常感谢 谢谢

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值