This is a way to setup syslog logging for Kamailio (OpenSER). This setup was based on Slackware 10.2, so your configuration may need to be modified for your distribution.
First, set these configuration options in your kamailio.cfg:
debug=3 # debug level, 1 is low and 4 is high (lots of output) log_facility=LOG_LOCAL7 loadmodule "/usr/local/lib/kamailio/modules/xlog.so"
Next, modify your syslog.conf (should be in /etc/syslog.conf), and add this line:
# Kamailio (OpenSER) messages, make sure this spacing is done with tabs, spaces may cause errors local7.* -/var/log/kamailio
Remarks:
Create the log file:
touch /var/log/kamailio
Now, in Kamailio (OpenSER), to do some custom logging within your route (it will still catch all regular output from Kamailio, of course), I like to use xlog. Regular log will work, too.
xlog("L_WARN", "Some message at level WARNING");
The first argument sets the level of the logging, and the next is the message.
Within /etc/logrotate.conf, you can configure general paramters for your log rotation. My Slackware setup by default looks like this.
# /etc/logrotate.conf # # logrotate is designed to ease administration of systems that generate large # numbers of log files. It allows automatic rotation, compression, removal, and # mailing of log files. Each log file may be handled daily, weekly, monthly, or # when it grows too large. # # logrotate is normally run daily from root's crontab. # # For more details, see "man logrotate". # rotate log files weekly: weekly # keep 4 weeks worth of backlogs: rotate 4 # create new (empty) log files after rotating old ones: create # uncomment this if you want your log files compressed: #compress # some packages install log rotation information in this directory: include /etc/logrotate.d # Rotate /var/log/wtmp: /var/log/wtmp { monthly create 0664 root utmp rotate 1 } # Note that /var/log/lastlog is not rotated. This is intentional, and it should # not be. The lastlog file is a database, and is also a sparse file that takes # up much less space on the drive than it appears. # system-specific logs may be also be configured below:
Each distribution may be different, but in Slackware 10.2, I created a the file /etc/logrotate.d/kamailio
I filled it with these parameters:
/var/log/kamailio { sharedscripts postrotate /bin/kill -HUP `cat /var/run/syslogd.pid 2>/dev/null` 2>/dev/null || true endscript }
Finally, restart Kamailio (OpenSER) & syslog and enjoy!
Questions and corrections, please email to mikebwilliams@gmail.com, or feel free to correct this Wiki yourself.