由于工作需要,这几天研究了一下怎样将log4j的日志写入到syslog中。syslogd是UNIX系统的一个常见的组件,用于执行系统日志记录活动。syslogd从一组日志源(如:/dev/log和/dev/klog)中读取数据,并按/etc/syslog.conf中的说明处理这些日志消息。通过syslog()调用,将应用程序日志消息记录到syslog中。
log4j是一款相当强大的开源日志工具,他能通过简单的配置将日志发送到文件、数据库、远程网络等各种地方。要在java程序中将log4j的日志信息发送到远程linux服务器的syslog中,也只需一点简单的配置就可以实现。
第一步,应该修改syslog的配置文件,因为syslog默认的配置是不能接收网络数据的,其配置文件syslog.conf文件通常在 /etc下:在文件中加入: *.* local5,local7.none;<tab>;<tab> /usr/adm/network.log 其次 启动syslog需使用:syslogd -r命令,否则不能接收网络数据,同时应注意关掉linux的防火墙。
第二步,配置log4j的properties文件,加入以下语句:
log4j.appender.syslog=org.apache.log4j.net.SyslogAppender
log4j.appender.syslog.SyslogHost=syslog服务器IP
log4j.appender.syslog.Facility=LOCAL5
log4j.appender.syslog.layout=org.apache.log4j.PatternLayout
log4j.appender.syslog.layout.ConversionPattern=%d [%t] %p %c - %m %n
通过以上配置,你在程序中使用log4j时,其日志信息将发送给syslog,具体保存在那里要看syslog.conf文件的
配置,如:*.info;mail.none;authpriv.none;cron.none /var/log/messages 此句表示,只将info等级的信息保存在
/var/log/messages文件中。(syslog.conf的详细配置网上有很多介绍,这里就不在讲了)
最后讲一点,如果在程序中修改了log4j配置,可以使用PropertyConfigurator.configureAndWatch("../sslsec/conf/log4j.properties", 1000);命令使log4j自动检查配置文件是否被修改,如修改了则自动使用新的配置而不必重启log4j。
分享到:
相关推荐
Log4cpp是一个开源的C++类库,它提供了在C++程序中使用...使用log4cpp,能够非常便利地将日志或者跟踪调试信息写入字符流、内存字符串队列、文件、回滚文件、调试器、Windows日志、本地syslog和远程syslogserver中。
在做项目的时候们为了方便运维,我们经常需要将系统日志写入系统syslog,下边我们就介绍一下,在linux下php对syslog的操作:在linux中配置syslog在linux中,facility(设备)有以下几种:AUTH 普通安全/授权消息...
pino-syslog从stdin接收pino日志,并将其转换为或 (syslog)格式的消息,并将其写入stdout 。 默认输出格式为RFC5424。 此传输不会将消息发送到远程甚至本地syslog兼容服务器。 它仅将日志重新格式化为与syslog...
Log4cpp是一个开源的C++类库,它提供了在C++程序中使用日志和...使用log4cpp,可以很便利地将日志或者跟踪调试信息写入字符流、内存字符串队列、文件、回滚文件、调试器、Windows日志、syslog和远程syslog服务器中。
Log4cpp是一个开源的C++类库,它提供了在C++程序中使用日志和...使用log4cpp,可以很便利地将日志或者跟踪调试信息写入字符流、内存字符串队列、文件、回滚文件、调试器、Windows日志、syslog和远程syslog服务器中。
快速开始最简单的配置从/ dev / log(从应用程序或systemd转发)接受系统日志,并将所有内容写入单个文件: @version: 3.30@include "scl.conf"log {source { system(); };destination { file("/var/log...
SyslogTarget 将日志写入 syslog。 安装 安装此扩展的首选方法是通过 。 跑步 php composer.phar require --prefer-dist dmstr/yii2-log "*" 用法 安装扩展后,只需通过以下方式在代码中使用它: 'log' => [ '...
将日志写入/var/log/syslog-ng/$PROGRAM/$PROGRAM.log最小 syslog-ng 容器 (18mb)。 暴露的输入: tcp 端口 514 UDP 端口 514 unix socket /var/run/syslog-ng/syslog-ng.sock 用法 在localhost上侦听 udp 端口...
入门从NuGet安装软件包: Install-Package Serilog.Sinks.SyslogMessages 要配置接收器以通过UDP将消息写入远程系统日志服务,请在记录器配置过程中调用WriteTo.UdpSyslog() : var log = new LoggerConfiguration ...
Log4cpp是一个开源的C++类库,它提供了在C++程序中使用日志和...使用log4cpp,可以很便利地将日志或者跟踪调试信息写入字符流、内存字符串队列、文件、回滚文件、调试器、Windows日志、syslog和远程syslog服务器中。
Log4cpp是一个开源的C++类库,它提供了在C++程序中使用日志...使用log4cpp,可以很便利地将日志或者跟踪调试信息写入字符流、内存字符串队列、文件、回滚文件、调试器、Windows日志、本地syslog和远程syslog服务器中。
将日志信息以用户数据报协议(UDP)方式传送到远端服务器,远端接收日志服务器必须通过syslogd监听UDP 端口514,并根据 syslog.conf配置文件中的配置处理本机,接收访问系统的日志信息,把指定的事件写入特定文件中,...
这增加了使用 TLS 写入系统日志守护进程的能力,以及为 Windows 实现这一点 package main import ( "crypto/tls" "crypto/x509" "fmt" "github.com/gabriel-samfira/syslog" ) const caPem = `-----BEGIN ...
一个小的库,可写入本地syslog。 安装 syslog在上可用,并且可以包含在启用了Cargo的项目中,如下所示: [ dependencies ] syslog = " ^4.0 " 文件资料 参考文档可。 例子 extern crate syslog; use syslog :: {...
syslog采用可配置的、统一的系统登记程序,随时从系统各处接受log请求,然后根据/etc/syslog.conf中的预先设定把log信息写入相应文件中、邮寄给特 定用户或者直接以消息的方式发往控制台。 好吧,问题又来了。系统中...
将日志写入本地文件系统 可以将配置作为配置文件提供,也可以选择从Consul获取 可以在Consul中将TCP和RELP侦听器注册为服务 可以通过Javascript函数定义自定义消息解析器和过滤器 可以使用TLS保护与Consul,Kafka或...
syslog采用可配置的、统一的系统登记程序,随时从系统各处接受log请求,然后根据/etc/syslog.conf中的预先设定把log信息写入相应文件中、邮寄给特 定用户或者直接以消息的方式发往控制台。值得注意的是,为了防止...
日志 Go 的标准记录器相当有限。... 我只是想让它处理不同的日志级别,并且能够将简单的日志写入stderr 、本地文件、 syslog和 Windows 事件日志。 所以,这里还有一个 Go 的日志库。 他们中最笨的。 享受。
要实现这个目的,你可以使用 Log 门面上的 channel 方法来获取配置文件定义的频道并将日志写入进去: Log::channel('slack')->info('Something happened!'); 如果你想要创建一个由多个频道组成的按需日志堆栈,可以...
RFC日志级别由遵循RFC 3164-BSD Syslog协议的rfc-log-levels包提供。 在lineLevel范围内的日志条目将使用get-current-line package获取其行信息。 Logger是您将日志消息写入的对象,然后您将其通过管道传输到目标...