java 利用syslog4j 实现 syslog客户端发送以及发送被截断分批次发送的问题

1.实现发送

Java可以通过syslog4j开发syslog 客户端。有多种包对此提供了支持,例如:org.graylog2,引用方式如下:

	<dependency>
        <groupId>org.graylog2</groupId>
        <artifactId>syslog4j</artifactId>
        <version>0.9.60</version>
   </dependency>

另外一种 org.syslog4j ,引用方式如下:

<dependency>
    <groupId>org.syslog4j</groupId>
 	<artifactId>syslog4j</artifactId>
	 <version>0.9.30</version>
</dependency>

实现的代码,二者差别不大

public static void main(String[] args) {
	     	String aa ="你想要的信息";
		    SyslogIF syslog = Syslog.getInstance(SyslogConstants.UDP);// 协议
	        syslog.getConfig().setHost(HOST);// 接收服务器
	        syslog.getConfig().setPort(PORT);// 端口
	        syslog.getConfig().setMaxMessageLength(1024000);
			try {
				syslog.log(0, URLDecoder.decode(aa, "utf-8"));
			} catch (UnsupportedEncodingException e) { 
				e.printStackTrace();
			}
		
	}

2. 遇到问题

(1) 发送出去的内容过长时会被截断,然后分批次发送出去。
参照上面的代码会避免这个问题,这些包默认发送长度是1024,我们可以通过 syslog.getConfig().setMaxMessageLength这个方法来设定他的长度
(2)遇到中文被截断的情况
此问题我没有遇到,搜到网上的解决方案:如果采用的是org.syslog4j,将版本升级至0.9.46 即可,可惜的是此版本在maven仓库中没有。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值