.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 .\" .\" Standard preamble: .\" ======================================================================== .de Sh \" Subsection heading .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. | will give a .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to .\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' .\" expand to `' in nroff, nothing in troff, for use with C<>. .tr \(*W-|\(bv\*(Tr .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .\" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .hy 0 .if n .na .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "VLOGGER 1" .TH VLOGGER 1 "2005-03-18" "perl v5.8.6" "User Contributed Perl Documentation" .SH "NAME" vlogger \- flexible log rotation and usage tracking in perl .SH "SYNOPSIS" .IX Header "SYNOPSIS" vlogger [\s-1OPTIONS\s0]... [\s-1LOGDIR\s0] .SH "DESCRIPTION" .IX Header "DESCRIPTION" Vlogger is designed to make webserver log rotation simple and easy to manage. It deals with VirtualHost logs automatically, so only one directive is required to manage all hosts on a webserver. Vlogger takes piped output from Apache or another webserver, splits off the first field, and writes the logs to logfiles in subdirectories. It uses a filehandle cache to avoid resource limitations. It will start a new logfile at the beginning of a new day, and optionally start new files when a certain filesize is reached. It can maintain a symlink to the most recent log for easy access. Optionally, host parsing can be disabled for use in ErrorLog directives. .PP To use vlogger, you need to add a \*(L"%v\*(R" to the first part of your LogFormat: .PP LogFormat \*(L"%v \f(CW%h\fR \f(CW%l\fR \f(CW%u\fR \f(CW%t\fR \e\*(R"%r\e\*(L" %>s \f(CW%b\fR \e\*(R"%{Referer}i\e\*(L" \e\*(R"%{User\-Agent}i\e"" combined .PP Then call it from a customlog: .PP CustomLog \*(L"| /usr/sbin/vlogger \-s access.log \-u www-logs \-g www-logs /var/log/apache\*(R" combined .SH "OPTIONS" .IX Header "OPTIONS" Options are given in short format on the command line. .PP \&\-a Do not autoflush files. This may improve performance but may break logfile analyzers that depend on full entries in the logs. .PP \&\-e ErrorLog mode. In this mode, the host parsing is disabled, and the file is written out using the template under the specified \s-1LOGDIR\s0. .PP \&\-n Disables rotation. This option disables rotation altogether. .PP \&\-f \s-1MAXFILES\s0 Maximum number of filehandles to keep open. Defaults to 100. Setting this value too high may result in the system running out of file descriptors. Setting it too low may affect performance. .PP \&\-u \s-1UID\s0 Change user to \s-1UID\s0 when running as root. .PP \&\-g \s-1GID\s0 Change group to \s-1GID\s0 when running as root. .PP \&\-t \s-1TEMPLATE\s0 Filename template using Date::Format codes. Default is \*(L"%m%d%Y\-access.log\*(R", or \*(L"%m%d%Y\-error.log\*(R". When using the \-r option, the default becomes \&\*(L"%m%d%Y\-%T\-access.log\*(R" or \*(L"%m%d%Y\-%T\-error.log\*(R". .PP \&\-s \s-1SYMLINK\s0 Specifies the name of a symlink to the current file. .PP \&\-r \s-1SIZE\s0 Rotate files when they reach \s-1SIZE\s0. \s-1SIZE\s0 is given in bytes. .PP \&\-d \s-1CONFIG\s0 Use the \s-1DBI\s0 usage tracker. .PP \&\-h Displays help. .PP \&\-v Prints version information. .SH "DBI USAGE TRACKER" .IX Header "DBI USAGE TRACKER" .Vb 9 \& Vlogger can automatically keep track of per-virtualhost usage statistics in a \&database. DBI and the relevant drivers (eg. DBD::mysql) needs to be installed for \&this to work. Create a table in your database to hold the data. A "mysql_create.sql" \&script is provided for using this feature with MySQL. Configure the dsn, user, pass \&and dump values in the vlogger-dbi.conf file. The "dump" parameter controls how often \&vlogger will dump its stats into the database (the default is 30 seconds). Copy this \&file to somewhere convienient on your filesystem (like /etc/apache/vlogger-dbi.conf) and \&start vlogger with "-d /etc/apache/vlogger-dbi.conf". You might want to use this feature \&to easily bill customers on a daily/weekly/monthly basis for bandwidth usage. .Ve .SH "SEE ALSO \fIcronolog\fP\|(1), \fIhttplog\fP\|(1)" .IX Header "SEE ALSO cronolog, httplog" .SH "BUGS None, yet." .IX Header "BUGS None, yet." .SH "AUTHORS Steve J. Kondik " .IX Header "AUTHORS Steve J. Kondik " \&\s-1WWW:\s0 http://n0rp.chemlab.org/vlogger