Home Switchboard Unix Administration Red Hat TCP/IP Networks Neoliberalism Toxic Managers
May the source be with you, but remember the KISS principle ;-)
Skepticism and critical thinking is not panacea, but can help to understand the world better

Syslog-ng Filter Functions with Examples

News See also Recommended Links Manual Reference Recommended Papers Installation on Solaris 9
Options Configuring syslog-ng to send logs Filters Configuration Examples Tips History Humor

Filters are expressions that can be used to route log messages from various sources to destinations. A list of the supported filter functions can be found here.

The following functions may be used in the filter statement:

Name Synopsis Description
facility facility(facility[,facility]) Match messages having one of the listed facility code.

facility(syslog, kern)

level() or priority() level(pri[,pri1..pri2[,pri3]]) Match messages based on priority. Example

level(notice .. emerg); };

program() program(regexp) Match messages by using a regular expression against the program name field of log messages
host() host(regexp) Match messages by using a regular expression against the hostname field of log messages.

host("^uwonet-pm(1|2|3|4|5)\.netmgmt\.uwo\.ca$"); };

match() match(regexp) Tries to match a regular expression to the message itself.
filter() filter(filtername) Call another filter rule and evaluate its value
netmask() netmask(ip/mask) Check the sender's IP address whether it is in the specified IP subnet

> Whereas the first problem is generated due to the fact
> the the identifier is called "user". If i call it "user_"
> it works fine.
> With the second line the problem is "auth" because
> facility(authpriv) is accepted. But why not auth?!

>From /usr/include/sys/syslog.h on my Linux box:

/* facility codes */
#define LOG_KERN        (0<<3)  /* kernel messages */
#define LOG_USER        (1<<3)  /* random user-level messages */
#define LOG_MAIL        (2<<3)  /* mail system */
#define LOG_DAEMON      (3<<3)  /* system daemons */
#define LOG_AUTH        (4<<3)  /* security/authorization messages */
#define LOG_SYSLOG      (5<<3)  /* messages generated internally by syslogd */
#define LOG_LPR         (6<<3)  /* line printer subsystem */
#define LOG_NEWS        (7<<3)  /* network news subsystem */
#define LOG_UUCP        (8<<3)  /* UUCP subsystem */
#define LOG_CRON        (9<<3)  /* clock daemon */
#define LOG_AUTHPRIV    (10<<3) /* security/authorization messages (private) */
#define LOG_FTP         (11<<3) /* ftp daemon */

Note that user, auth, and authpriv are all facility codes.  You can probably
guess the rest of the dont-call-them-that list.  Oh, and I omitted local0-local7
to save space.....

On Thu, 2005-05-05 at 18:01 +0200, J. Meub wrote:
> Hello,
> i'm new to syslog-ng and recently compiled and
> installed it (version 1.9.4) on my system (LFS, Kernel
> The problem i have is that even with the default
> configuiration file it claims to have syntax errors.
> The lines causing the errors are:
> destination user { file("/var/log/user.log"); };
> and
> filter f_auth { facility(auth); };

I've tried this configuration file:

source s_udp { unix-stream("log" log_iw_size(5)); udp(port(2000)); internal(); };

destination d_file { file("/home/bazsi/zwa/install/syslog-ng-2.0/messages" template("/var/log/messages/$HOST/$FACILITY.log\n") log_fifo_size(10)); };
destination user { file("user.log"); };

filter f_auth { facility(auth); };

log { source(s_udp); destination(d_file); destination(user); flags(flow-control); };

It was parsed fine.


Using host filters we can filter information based on the host that they were created. Note that it's possible to use regular expressions in the various filters. In our setup we define 8 different categories of hosts.

#### host filters
filter f_host_loghost { host("loghost"); };  # loghost
filter f_host_wn { host("wn[0-9][0-9]"); };  # WNs (wn01,...)
filter f_host_se { host("se[0-9][0-9]"); };  # SEs(se01,...)
filter f_host_ui { host("ui01");  };         # UI
filter f_host_ce  {  host("ce01"); };        # CE
filter f_host_mon { host("mon"); };          # Mon
filter f_host_lfc { host("lfc"); };          # LFC
filter f_host_rb { host("rb"); };            # RB
Program Filters

Using Program Filters we can filter information based on the program which generated the log message. We define two filters, so we can keep all the generated output of various grid related programs in one place.

#### program filters
# grid programs
filter f_prog_grid {
       program("GRAM") or 
       program("gridinfo") or 
# edg programs
filter f_prog_edg 


The Last but not Least Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D

Copyright 1996-2018 by Dr. Nikolai Bezroukov. was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) in the author free time and without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to make a contribution, supporting development of this site and speed up access. In case is down you can use the at


The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Last modified: July 28, 2019