在使用rsyslog的时候,一般来讲,如果消息中含有换行符的话,这条消息会以换行符为分隔,视为多条消息;即: rsyslog协议是基于行处理的,而且,默认单个消息大小为2k(rsyslogd v5),rsyslogd v8默认单个消息大小为8k。

问题: 一般来讲,程序出错时的堆栈信息都是多行的,这种情况该如何处理呢?

办法1: 先将堆栈信息中的换行替换成其它字符

办法2: 其实rsyslog是可以支持换行的,只是不是想换就换的,在structure data中可以小心地换行

关于syslog协议有两个rfc:

The BSD syslog Protocol rfc3164

The Syslog Protocol rfc5424

其中:

rfc3164 定义的syslog协议是比较原始的用法,不支持消息的换行

rfc5424 是所谓的version为1的syslog协议,支持 structure data;就是这个structure data中是可以包含换行的; 当然,要严格遵照定义的格式的哦

rsyslog (rsyslog-8.17.0)源码学习:

runtime/stream.c 中是这么解析的

翻译下:

mode=0 单行模式,遇到回车算做消息结束

mode=1 空行分隔模式,遇到空行算作消息结束(就是相邻消息之间要已空行分隔)

mode=2 非空开头模式, 只要下一行空白(应该也包含tab吧)开头就算作上个消息的一部分,不视为新消息

不幸的是,目前发现只有imfile模块才支持这三种模式之间的选择,更不幸的时,imfile模块使用inotify配置时,mode=2有bug(我测试时不是有bug,是根本不能用)

php syslog,关于syslog协议相关推荐

  1. c语言删除syslog进程,Syslog配置及使用简介

    Syslog配置及使用简介 目录 Syslog配置及使用简介 1 1. Syslog简介 1 2. Syslog协议 1 2.1. syslog体系结构 1 2.2. syslog包格式 2 3. S ...

  2. syslog与syslog服务器的配置

    1. 前言 syslog是UNIX系统中提供的一种日志记录方法(RFC3164),syslog本身是一个服务器,程序中凡是使用syslog记录的信息都会发送到该服务器,服务器根据配置决定此信息是否记录 ...

  3. 系统日志函数syslog和syslog配置

    文章目录 syslog函数详解 syslog函数及syslog配置 syslog详解

  4. linux下syslog命令,syslog命令

    syslog 是Linux系统默认的日志守护进程.默认的syslog配置文件是/etc/syslog.conf文件.程序,守护进程和内核提供了访问系统的日志信息.因此,任何希望生成日志信息的程序都可以 ...

  5. linux系统配置syslog服务器,Syslog服务器配置

    我们使用的Linux操作系统每天都会随着进程的运行而产生大量的信息.系统启动时kernel完成初始化,而后是init中守护进程的启动,这过程中都伴随着大量的信息,无论是正确的还是错误的,系统都在一个特 ...

  6. linux syslog客户端,syslog服务器及客户端配置指南

    第一部分 syslog服务器配置 操作系统:windows server 2008 R2 syslog软件:KIWI syslog 1.安装完成后,不需要特殊的配置,在kiwi syslog serv ...

  7. 红帽linux配置syslog,linux syslog配置

    linux中的程序执行时通过标准输出和错误输出让我们能够观测到程序的运行状态,当遇到后台执行的程序或内核自身来说就不能将运行状态信息输出到屏幕了 他们会切断与终端主控制台的连接,即使输出到屏幕.我们也 ...

  8. syslog服务器默认使用协议,什么是syslog协议?

    在Unix类操作系统上,syslog广泛应用于系统日志.syslog日志消息既可以记录在本地文件中,也可以通过网络发送到接收syslog的服务器.接收syslog的服务器可以对多个设备的syslog消 ...

  9. RFC3164 – BSD Syslog协议

    文档状态 本文档提供了互联网委员会的信息.它不指定任何一种网络规范.对本文档的发布是不受限制的. 摘要 本文描述了syslog协议的实测行为.本协议在互联网上已经使用了很多年,是用来传送事件通知信息的 ...

最新文章

  1. 图表君聊docker-仓库
  2. curl比较有用的参数
  3. android 详细构建过程,Android构建模块详细步骤概述
  4. 为什么阿里如此钟爱Flink?
  5. 【Android 逆向】函数拦截原理 ( 通过修改 GOT 全局偏移表拦截函数 | 通过在实际被调用的函数中添加跳转代码实现函数拦截 )
  6. C#调用C++dll
  7. esp32 烧录固件
  8. arcgis插值不覆盖区划图_ArcGIS绘图—空气质量站点数据插值绘制等值线图
  9. Linux基础命令---查找进程id
  10. 汇编语言程序设计的实验环境及上机步骤
  11. Coursera | Introduction to Data Analytics(IBM) | Final Assignment
  12. 栈和队列的基本操作(栈和队列的区别)
  13. 互联网快讯:极米投影仪获用户青睐;粉笔科技创新OMO模式谋突围;华虹半导体拟科创板上市
  14. java全栈系列之JavaSE-面向对象(封装详解)034
  15. TeamViewer远程的三种访问模式 (最方便的模式无需输入密码)
  16. 2018迅雷校园招聘客户端在线笔试B卷---输入一个有符号整数,输出该整数的反转值。
  17. ORA-22858: invalid alteration of datatype
  18. Chevereto V4 首页显示图片托管数量的实现方法
  19. 前端框架的新星-Hyperapp 1.0简介
  20. 移动设备软件开发-1

热门文章

  1. Powerpoint播放幻灯时记号笔无法使用的原因
  2. 谈谈exports和moudel.exports
  3. 倾斜摄影超大场景的三维模型OSGB格式转换3DTILES,为什么数据文件大小会变大?
  4. 一、一个月学习java基础路线以及时间安排
  5. 记一次艰难的SpringBoot折腾过程
  6. 世界500强企业网站
  7. Deepin的wine安装Windows的EXE程序,Deepin安装sqlyog,并且打包成deb程序。
  8. python里range什么意思_python中range什么意思
  9. python写程序计算无穷级数_python下利用无穷级数计算pi值
  10. laravel 悲观锁