如何修改syslog-ng配置实现日志同时发送至控制台与文件?
实现syslog消息同时输出到文件与控制台
要让匹配program(mycode)的日志既写到/var/log/app.log又输出到控制台,只需要在现有配置基础上添加一个控制台目的地,并将其加入到日志转发规则中即可,具体操作如下:
步骤1:新增控制台目的地
首先添加一个指向系统控制台的目的地定义,系统控制台对应的默认设备文件是/dev/console:
destination d_console { file("/dev/console"); };
如果你需要输出到当前登录用户的交互终端,部分syslog-ng版本也支持用terminal()驱动:
destination d_console { terminal(); };
步骤2:更新日志转发规则
修改现有的log语句,把新增的控制台目的地d_console加入进去,让符合规则的日志同时发往两个目标:
log { source(s_src); filter(f_mycode); destination(d_mycode); destination(d_console); };
修改后的完整配置
整合所有配置项后,最终内容如下:
destination d_mycode { file("/var/log/app.log"); }; destination d_console { file("/dev/console"); }; filter f_mycode { program(mycode); }; log { source(s_src); filter(f_mycode); destination(d_mycode); destination(d_console); };
补充说明
配置修改完成后,记得重启syslog-ng服务让新配置生效,比如执行systemctl restart syslog-ng(根据你的系统环境调整服务命令)。
内容的提问来源于stack exchange,提问作者prattom
相关产品推荐
相关产品推荐

