例如,如果在我的日志行中出现类似[xxx]的内容,我必须将此消息放在名称以xxx.log开头的文件中 如果消息发生变化并显示[xxy],我必须创建一个名为xxy.log的新日志文件 我怎么能在syslog-ng配置文件中这样做?
答案 0 :(得分:0)
要过滤特定消息,您可以在syslog-ng中使用过滤器表达式: 您也可以在过滤器中使用正则表达式。 要在文件名中使用匹配结果,请尝试在过滤器表达式中使用命名模式:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu,v,menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu,menu);
}
然后您可以在目标模板中使用命名匹配:
filter f_myfilter {message("(?<name>pattern)");};
如果有效,请告诉我,我还没有时间对其进行测试。
答案 1 :(得分:0)
我找到了解决mi问题的方法。
parser p_apache {
csv-parser(columns("MY.ALGO", "MY.MOSTRAR", "MY.OTRA")
delimiters("|")
);
};
destination d_file {
file("/var/log/syslog-ng/$YEAR-$MONTH/$DAY/messages-${MY.ALGO:-nouser}.log");
};
答案 2 :(得分:0)
正则表达式是这里的答案。
例如:我的源文件名为 access2018-10-21.log ,因此我的访问日志源文件条目变为
file("/opt/liferay-portal-6.2-ee-sp13/tomcat-7.0.62/logs/access[0-9][0-9][0-9][0-9]\-[0-9][0-9]\-[0-9][0-9].log" follow_freq(1) flags(no-parse));