标签: syslog

Log4net:SysLog Appender示例

我正在寻找有关如何将Log4net日志记录到Syslog服务器的示例配置.欢迎任何帮助.

log4net syslog

17
推荐指数
3
解决办法
3万
查看次数

与syslog消息格式混淆

我对syslog消息格式有点困惑.我必须编写一个解析syslog消息的程序.当我读到我在syslog-ng实例中得到的内容时,我得到这样的消息:

Jan 12 06:30:00 1.2.3.4 apache_server: 1.2.3.4 - - [12/Jan/2011:06:29:59 +0100] "GET /foo/bar.html HTTP/1.1" 301 96 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 ( .NET CLR 3.5.30729)" PID 18904 Time Taken 0
Run Code Online (Sandbox Code Playgroud)

我可以清楚地确定真实的消息(在这种情况下是Apache访问日志消息)其余的是关于系统日志消息本身的元数据.

但是,当我阅读RFC 5424时,消息示例如下所示:

没有结构化数据

 <34>1 2003-10-11T22:14:15.003Z mymachine.example.com su - ID47 - BOM'su root' failed for lonvick on /dev/pts/8
Run Code Online (Sandbox Code Playgroud)

或结构化数据

<165>1 2003-10-11T22:14:15.003Z mymachine.example.com evntslog - ID47 [exampleSDID@32473 iut="3" eventSource="Application" eventID="1011"] BOMAn application event log entry...
Run Code Online (Sandbox Code Playgroud)

所以现在我有点困惑.什么是正确的系统日志消息格式?这是RFC 5424废弃RFC 3164的规范版本问题?

syslog rsyslog syslog-ng

17
推荐指数
1
解决办法
4万
查看次数

使用java.util.logging处理程序登录syslog的最现代方法是什么?

我特意寻找最新,最现代SysLogHandlerjava.util.logging.

我发现一些可以追溯到2001年至2003年,现在大部分都没有得到支持.

我知道这syslog是一个非常静态的服务,我想在自己写一些东西之前,如果有任何新的处理程序实现支持Java 1.5和更新的功能.

我对任何其他日志框架或包装器/代理库都不感兴趣.

不是在寻找SLF4J或任何其他替代日志框架,如本问题所示.

java logging syslog java.util.logging

16
推荐指数
1
解决办法
1万
查看次数

Ubuntu:大型 syslog 和 kern.log 文件

登录到我的 Ubuntu 机器时,我收到一条警告,指出我的磁盘空间不足。回溯,我发现是系统日志,尤其是 kern.log(s) 占用了我的 1TB 磁盘。

-rw-r----- 1 syslog adm 240G Feb 25 14:22 kern.log
-rw-r----- 1 syslog adm 516G Feb 21 07:59 kern.log.1
-rw-r----- 1 syslog adm 1.1K Feb 15 07:39 kern.log.2.gz
-rw-r----- 1 syslog adm  19K Feb  7 07:56 kern.log.3.gz
-rw-r----- 1 syslog adm  37K Feb  1 07:45 kern.log.4.gz
-rw-r----- 1 syslog adm  23G Feb 25 14:52 syslog
-rw-r----- 1 syslog adm  25G Feb 25 08:11 syslog.1
-rw-r----- 1 syslog adm 1.6G Feb 24 07:49 syslog.2.gz
-rw-r----- …
Run Code Online (Sandbox Code Playgroud)

ubuntu syslog ubuntu-14.04

16
推荐指数
3
解决办法
4万
查看次数

集中式网络日志 - 系统日志和备选方案?

在工作中,我们正在构建一个分布式应用程序(可能跨越局域网上的多台机器,可能稍后在WAN + VPN上跨越几个大陆).我们不希望每台机器都有本地日志文件(填满磁盘而无法集中查看),因此我们需要集中通过网络进行日志记录.大多数日志都不重要,因此UDP对他们来说很好,但有些是丢失重要的警报,必须可靠地传递,这意味着TCP.如果日志记录协议过于繁琐,我们担心拥塞网络,或者如果应用程序没有响应,则将应用程序拖到爬网中.

我考虑过的一些可能性是:

  • 系统日志(看起来很完美,但我的老板对此有一种敌意,所以我可能无法选择它).
  • 来自facebook的抄写员(但它似乎有点重量级,每台机器上都有一台服务器 - 并非每条日志消息都需要超级可靠性).
  • 使用像rabbitmq这样的消息队列,可以将多个队列调整到不同级别的事务安全性.
  • 最坏的情况,我可以从头开始写自己的.

你有其他建议吗?您使用了哪些集中式日志记录解决方案,以及它们的运行情况如何?

编辑:我倾向于抄写员,因为它的存储转发设计将正在运行的应用程序与网络延迟分离.但是在努力安装它之后,我发现(1)它不能作为二进制包使用 - 现在这是不可原谅的 - 而且(2)它非常依赖于一个不能作为二进制包提供的库(thrift)!最糟糕的是,它甚至无法正常编译.这不是发布质量代码,即使在开源中也是如此.

networking logging syslog message-queue

15
推荐指数
4
解决办法
1万
查看次数

将标准输出重定向到syslog

我打算为Debian 打包OpenTibia Server.我想要做的其中一件事是添加启动过程/etc/init.d和守护otserv进程.

事实是,我们应该将输出重定向到syslog.这通常通过该syslog()功能完成.目前,代码集中在:

std::cout << "Stuff to printout" << std::endl;
Run Code Online (Sandbox Code Playgroud)

是否有一种适当的,易于添加的方法将标准输出和标准错误输出重定向到syslog中,而无需将每一个"调用"替换为std :: cout和朋友?

c++ unix redirect daemon syslog

14
推荐指数
3
解决办法
1万
查看次数

查找syslog最大消息长度

大多数Unix程序员都习惯于定义的接口syslog.h,并且许多实现(例如glibc)对发送给它的syslog消息的大小没有实际限制,但是应用程序监听通常有限制/dev/log.

我想知道是否有人知道如何找到syslog的最大消息大小?或者一些关于实际(或通常)限制的好文档?

编辑:

到目前为止,我已经在这个主题上找到了这些RFC:

linux syslog

14
推荐指数
2
解决办法
2万
查看次数

log4j2 - Syslog appender和PatternLayout

我需要将事件记录到syslog中.我使用lo4j2和syslog appender.我的appenders阻止log4j2.xml看起来像这样:

<appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <Syslog name="syslog" host="localhost" port="514" protocol="UDP" charset="ISO-8859-1">
        </Syslog>
        <RollingFile name="AppLog" fileName="/var/log/app.log"
                     filePattern="/var/log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
            </Policies>
        </RollingFile>          
    </appenders>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我有一个Console appender和RollingFile appender以及一个特定的PatternLayout.我想为Syslog appender使用相同的PatternLayout.但是,syslog中的日志消息似乎总是使用预定义的布局.我试着做以下事情:

<Syslog name="syslog" host="localhost" port="514" protocol="UDP" charset="ISO-8859-1">
    <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Syslog>
Run Code Online (Sandbox Code Playgroud)

但这没有任何影响.系统日志消息仍然具有相同的预定义格式.

如何确定进入syslog的日志消息的格式?

java log4j syslog log4j2

14
推荐指数
2
解决办法
2万
查看次数

gnu syslog(),openlog()和closelog()线程安全吗?

我一直在寻找一些时间,但还没有找到明确的答案.到目前为止,我发现的唯一链接就是这里.

c linux gnu syslog

14
推荐指数
3
解决办法
6336
查看次数

许多Java应用程序的集中日志记录:Syslog vs JMS vs Http vs Local文件

我希望我的所有应用程序日志都集中在一起(理想情况下是近乎实时的).我们将使用Log4 Appender.我应该使用哪一个:

  1. 在JMS队列中发送日志事件
  2. Syslog/syslog-ng
  3. 写入本地文件并使用rsync(每3秒)复制日志
  4. 对集中式REST Http服务执行POST

你在用哪一个?

java rest logging jms syslog

13
推荐指数
1
解决办法
4668
查看次数