34 lines
1.9 KiB
Markdown
34 lines
1.9 KiB
Markdown
|
+++
|
||
|
title = "filter program logs in freebsd syslog"
|
||
|
date = "2013-02-19T08:30:37+00:00"
|
||
|
author = "Gibheer"
|
||
|
draft = false
|
||
|
+++
|
||
|
|
||
|
I had the need to filter logs from different programs into different places - in this case the postgres and nginx logs. The man page of `syslog.conf` describes it pretty good, but misses some examples to make it more clear. So here is how I configured it, to make it easier.
|
||
|
|
||
|
First, I edited the `syslog.conf`
|
||
|
|
||
|
# filter everything apart from postgres and nginx
|
||
|
!-postgres,nginx
|
||
|
*.err;kern.warning;auth.notice;mail.crit /dev/console
|
||
|
# and all the other stuff
|
||
|
|
||
|
# filter only postgres
|
||
|
!postgres
|
||
|
*.* /var/log/postgresql.log
|
||
|
|
||
|
# filter only nginx
|
||
|
!nginx
|
||
|
*.* /var/log/nginx.log
|
||
|
|
||
|
The next step is to setup the log rotate. This happens in `/etc/newsyslog.conf`. The man page is very helpful, so if you want to adjust something, take a peek into it.
|
||
|
|
||
|
# postgresql
|
||
|
/var/log/postgresql.log 640 5 100 * JC
|
||
|
|
||
|
# nginx
|
||
|
/var/log/nginx.log 640 5 100 * JC
|
||
|
|
||
|
And that is all. If you want to add more program filtes, you have to define them in the `syslog.conf` as *notfilter* and *filter* and add the rotate to `newsyslog.conf`.
|