java 利用syslog4j 实现 syslog客户端发送日志,解决日志过长被截断分批发送以及日志不完整的问题

2023-11-12

开发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>

本项目采用的是方法一,引用org.graylog2

代码:

@KafkaListener(topics = “topic”}, groupId = “group”)
public void consumerSignalMessage(String content) {
   log.info("syslog消费服务:" + content);
   try{
      List<SysLogConfig> list = getSysLogConfigs();
      for (SysLogConfig sysConfig:list) {
         syslogClient.getConfig().setHost(sysConfig.getHostIp());
         syslogClient.getConfig().setPort(Integer.parseInt(sysConfig.getHostPort()));
         syslogClient.getConfig().setMaxMessageLength(10240);
         syslogClient.log(7, content);
      }
   }catch (Exception e){
      log.error("出异常了!");
   }
}

解决日志过长被截断分批发送问题:

一开始被截断分批发送,是因为setMaxMessageLength设置的值过小,设为了1024*2,因此当日志长度过长时,就被截断,前后加上了省略号,如下:

于是将setMaxMessageLength改成了1024*10,这次日志没有再被截断分批,但是显示出来的日志还是不完整的如下:

此时在网上查了很多资料,方法很多,如:

1.将日志转为utf-8格式后再发送

syslogClient.log(7, URLDecoder.decode( content, "utf-8"));

2.如果采用的是org.syslog4j,将版本升级至0.9.46

参考:https://blog.csdn.net/daodan988/article/details/78628685

3.中文字符长度问题,计算中文字符并调整长度后再发送等等

参考:syslog4j发送日志有中文会产生截断_se7en_q的博客-CSDN博客

以上方法一一尝试,都没有解决问题,后来突然想起来只修改了客户端的发送长度限制,并没有设置服务端的接收长度限制,问题终于得到解决,解决方法如下:

打开rsyslog配置文件:

vi /etc/rsyslog.conf

找到 #### MODULES #### 下的 $MaxMessageSize 10kb 配置设置单条日志长度,如没有新增该配置

重启rsyslog

systemctl restart rsyslog

此时日志输出完整

 注意:此处设置的大小是根据项目需要来设定的,大家可以根据自己的项目需求进行调整

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java 利用syslog4j 实现 syslog客户端发送日志,解决日志过长被截断分批发送以及日志不完整的问题 的相关文章

  • Spring应用中Eureka健康检查的问题

    我正在开发一个基于 Spring 的应用程序 其中包含多个微服务 我的一个微服务充当尤里卡服务器 到目前为止一切正常 在我所有其他微服务中 用 EnableEurekaClient 我想启用这样的健康检查 应用程序 yml eureka c
  • 在内存中使用 byte[] 创建 zip 文件。 Zip 文件总是损坏

    我创建的 zip 文件有问题 我正在使用 Java 7 我尝试从字节数组创建一个 zip 文件 其中包含两个或多个 Excel 文件 应用程序始终完成 没有任何异常 所以 我以为一切都好 当我尝试打开 zip 文件后 Windows 7 出
  • 使用 LinkedList 实现下一个和上一个按钮

    这可能是一个愚蠢的问题 但我很难思考清楚 我编写了一个使用 LinkedList 来移动加载的 MIDI 乐器的方法 我想制作一个下一个和一个上一个按钮 以便每次单击该按钮时都会遍历 LinkedList 如果我硬编码itr next or
  • 如何获取之前的URL?

    我需要调用我的网络应用程序的 URL 例如 如果有一个从 stackoverflow com 到我的网站 foo com 的链接 我需要 Web 应用程序 托管 bean 中的 stackoverflow 链接 感谢所有帮助 谢谢 并不总是
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 如何更改javaFX中按钮的图像?

    我正在使用javaFX 我制作了一个按钮并为此设置了图像 代码是 Image playI new Image file c Users Farhad Desktop icons play2 jpg ImageView iv1 new Ima
  • Java 公历日历更改时区

    我正在尝试设置 HOUR OF DAY 字段并更改 GregorianCalendar 日期对象的时区 GregorianCalendar date new GregorianCalendar TimeZone getTimeZone GM
  • Java 集合的并集或交集

    建立并集或交集的最简单方法是什么Set在 Java 中 我见过这个简单问题的一些奇怪的解决方案 例如手动迭代这两个集合 最简单的单行解决方案是这样的 set1 addAll set2 Union set1 retainAll set2 In
  • 如何在用户输入数据后重新运行java代码

    嘿 我有一个基本的java 应用程序 显示人们是成年人还是青少年等 我从java开始 在用户输入年龄和字符串后我找不到如何制作它它们被归类为 我希望它重新运行整个过程 以便其他人可以尝试 的节目 我一直在考虑做一个循环 但这对我来说没有用
  • Spring Boot Data JPA 从存储过程接收多个输出参数

    我尝试通过 Spring Boot Data JPA v2 2 6 调用具有多个输出参数的存储过程 但收到错误 DEBUG http nio 8080 exec 1 org hibernate engine jdbc spi SqlStat
  • tomcat 中受密码保护的应用程序

    我正在使用 JSP Servlet 开发一个Web应用程序 并且我使用了Tomcat 7 0 33 as a web container 所以我的要求是tomcat中的每个应用程序都会password像受保护的manager applica
  • 如何对不同的参数类型使用相同的java方法?

    我的问题 我有 2 个已定义的记录 创建对象请求 更新对象请求 必须通过实用方法进行验证 由于这两个对象具有相同的字段 因此可以对这两种类型应用相同的验证方法 现在我只是使用两种方法进行重载 但它很冗长 public record Crea
  • 如何访问JAR文件中的Maven资源? [复制]

    这个问题在这里已经有答案了 我有一个使用 Maven 构建的 Java 应用程序 我有一个资源文件夹com pkg resources 我需要从中访问文件 例如directory txt 我一直在查看各种教程和其他答案 但似乎没有一个对我有
  • 尝试将 Web 服务部署到 TomEE 时出现“找不到...的 appInfo”

    我有一个非常简单的项目 用于培训目的 它是一个 RESTful Web 服务 我使用 js css 和 html 创建了一个客户端 我正在尝试将该服务部署到 TomEE 这是我尝试部署时遇到的错误 我在这里做错了什么 刚刚遇到这个问题 我曾
  • 关键字“table”附近的语法不正确,无法提取结果集

    我使用 SQL Server 创建了一个项目 其中包含以下文件 UserDAO java public class UserDAO private static SessionFactory sessionFactory static se
  • 如何使用 jUnit 将测试用例添加到套件中?

    我有 2 个测试类 都扩展了TestCase 每个类都包含一堆针对我的程序运行的单独测试 如何将这两个类 以及它们拥有的所有测试 作为同一套件的一部分执行 我正在使用 jUnit 4 8 在 jUnit4 中你有这样的东西 RunWith
  • Opencv Java 灰度

    我编写了以下程序 尝试从彩色转换为灰度 Mat newImage Imgcodecs imread q1 jpg Mat image new Mat new Size newImage cols newImage rows CvType C
  • 如何使用mockito模拟构建器

    我有一个建造者 class Builder private String name private String address public Builder setName String name this name name retur
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • CDH6.3修改主机IP

    这里写自定义目录标题 修改ip 停服务 进入mysql修改元数据ip 修改各主机的ip 分别修改各主机的ip 修改所有hadoop集群机器中的cloudera scm agent的配置文件 重启服务 修改ip 开始是在公司使用桥接模式 回到
  • 根据XML文件在原始图片上画矩形框

    根据XML文件在原始图片上画矩形框 输入参数 xml src XML文件路径 img src 原始图片路径 代码 def markImage xml src img src root ET parse xml src getroot cou
  • Eclipse 下载与安装(2022超详细)

    一 下载jdk 去官网可以下载 小编把64位已下载好的放网盘 自行下载 链接 https pan baidu com s 1A0 iWtdvYfwepTXzqXWfMA 提取码 cnqz 1 下载好之后自己选择安装目录安装即可 2 配置环境
  • 留学申请计算机硕士个人陈述,计算机专业“个人陈述”样本

    Computer Science Personal Statement Computing and its applications have always fascinated me and for this reason I have
  • iText官方教程

    如果要导出PDF文件 首选当然是iText 从网上也找了些资料 有很多 也有些乱 自己做了个例子 感觉还是很浅 深入的内容还是研究不透 下载了官方的jar包 本来想看看 里面的Demo 结果只有api文档 资料还真是不好找 今天发现官方还是
  • 第1章 Python概述 课后习题参考答案

    一 单选题 1 以下选项中说法不正确的是 答案为D A 解释是将源代码逐条转换成目标代码并同时运行的过程 B 编译是将源代码转换成目标代码的过程 C Python语言是解释型语言 兼有编译功能 D 静态语言采用解释方式执行 脚本语言采用编译
  • jenkins自动化脚本整理

    发布jar文件 规范化Jenkins 编译服务器编译目录设定为 编译脚本目录 bin 发布脚本目录 deploy 编译代码目录 source 1 项目代码目录 创建source dmmclist txt文件 kc tmplt tmpltsv
  • STM32 电机教程 33 - 无刷电机无感控制快速实现

    前言 上一节 STM32 电机教程 32 基于ST X CUBE SPN7 无刷无感电机库的电机驱动实现 给大家分享了ST的官方的无刷电机无感控制实现方案 基于NUCLEO F103RB和X NUCLEO IHM07M1 3SH开发板 并给
  • R-字符串

    字符串 文本数据存储在字符向量中 或字符数组中 虽然这比较少见 字符向量中的每个元素都是字符串 在R中 字符串 是个常用的非正式术语 因为正式的 字符向量元素 读起来相当拗口 文本的基本单位是字符向量 这意味着大部分字符串处理函数也能用于字
  • jQuery筛选器

    div div ul li li li li ul
  • kotlin协程async await的异常踩坑以及异常处理的正确姿势

    使用Kotlin来做一些异步操作相信大家都非常熟悉了 特别是结合Jetpack的一些组件 使得我们在Android开发中写异步任务非常的方便 但是 关于在使用协程的时候 个人觉得异常处理这一块是相对来讲是需要花时间去了解的地方 因为在使用过
  • 万字深剖 Linux I/O 原理

    目录 传统艺能 梅开二度 当前路径 三大输入输出流 系统文件 I O open open 返回值 close write read 文件描述符fd 对应关系 内存文件 分配规则 重定向 原理 dup2 重定向模拟实现 FILE 的文件描述符
  • IDEA插件开发入门

    转自 https cloud tencent com developer article 1348741 官方文档 https www jetbrains org intellij sdk docs basics getting start
  • 吴恩达机器学习笔记之机器学习系统设计

    确定执行的优先级 误差分析 在设计一个复杂的机器学习系统时 可以先用最简单的算法去快速实现它 然后用交叉验证集来看看自己的算法需要在哪些方面提高 除此之外 还可以进行误差分析 来针对性的提高我们的算法 不对称分类的误差评估 类偏斜情况表现为
  • Mathorcup数学建模竞赛第六届-【妈妈杯】B题:车位分布的优化设计与评价(附一等奖获奖论文、lingo和matlab代码)

    赛题描述 随着现代社会经济的快速发展 房地产成为国家经济发展中重要的经济增长点之一 而小区内汽车停车位的分布对于小区居民的上下班出行影响很大 请建立数学模型 解决下列问题 问题1 分析评判小区汽车停车位分布是否合理的几个关键指标 建立评判车
  • 升级SpringBoot版本导致NoSuchMethodError: redis/clients/jedis/ScanResult.getStringCursor()

    今天在对SpringBoot项目升级的时候 把2 1 8 RELEASE 升级到了 2 3 2 RELEASE 2 3 2 2 4 2区间内的版本是这样 其他的springboot版本 本人没试过 运行后发现 在获取在线用户的时候 报了一个
  • easycom模式使vue组件无需引入即可使用

    easycom HBuilderX 2 5 5起支持easycom组件模式 传统vue组件 需要安装 引用 注册 三个步骤后才能使用组件 easycom将其精简为一步 只要组件安装在项目的components目录下 并符合component
  • 精心整理的15道 Dubbo 基础面试题,拿去!

    1 Dubbo是什么 Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC 分布式服务框架 现已成为 Apache 基金会孵化项目 dubbo是一个分布式框架 远程服务调用的分布式框架 其核心部分包含 集群容错 提供基于接口方法的透明
  • android 协调布局,CoordinatorLayout的使用如此简单(Android)

    曾在网上找了一些关于CoordinatorLayout的教程 大部分文章都是把CoordinatorLayout AppbarLayout CollapsingToolbarLayout 以及Toolbar等一起使用来介绍 这让我不知不觉在
  • java 利用syslog4j 实现 syslog客户端发送日志,解决日志过长被截断分批发送以及日志不完整的问题

    开发syslog客户端 方法一 引用org graylog2