log_input - run a command, collecting all stdout & stderr to file
Take a command line, run this command as a child process, collection all output into a specified logfile, with timestamps.
When a signal is received, it will be logged. If the signal is a SIGCONT, the logger will check to see how many children are still alive, and log that count. If the signal is a SIGHUP or SIGTERM, the child process will be killed, before log_input itself exits (with whatever exit code the child exited with).
For each line of output received from the child, the log file is checked to see if it would exceed 1Gb. If it would, then the log file is closed, renamed to include a timestamp (of the time of closure), and a new log file with the original name is opened.
If provided, set the exit status to this.
The exit status of the logged process, or undef if it has not yet finished.
If provided, set the log file (handle) to this.
The file handle of the log file.
If provided, set the log file (name) to this.
The file name of the log file.
log_input [options] <logfile> <command>
option: Value Default Unit Meaning -h|--nohup boolean false Ignore SIGHUP in child -m|--maxsize int 1Gb Maximum log size in bytes -A|--noarchive boolean false Don't archive old logs --preserve-lines int 128 Keep n lines if not archiving(-A) --help Produce summary help on stdout --longhelp Produce long help on stdout --man Produce full man page on stdout
logfile is a single shell word. command may be multiple shell words.
logfile
command
Options come in short (single-character) and/or long forms. Short options are preceded by a single dash (-x), whilst long options are preceded by a double-dash (--option). Long options may be abbreviated to the minimal distinct prefix. Single char options may be bundled (-v -a -x == -vax), values may be interspersed (-v 1 -a 2 -x 3 == -v1a2x3). Options taking string values will assume that anything immediately following is a string value, even if the string is optional and/or the "value" could be interpreted as another option (if -v takes a string, -vax will give the value "ax" to the option -v). Options which are boolean must use the long form to negate, prefixed by "no_" (--foo may be negated by --no_foo).
log_input will only see options presented prior to the specification of the logfile. Logfiles with names beginning with '-' are not usable. Any options presented after the logfile will be considered as part of the command to run.
Attempt to ignore the NOHUP signal in the logger and child; this is useful if you may want to detach the controlling terminal, for example. See nohup.
Note that we cannot promise that the child will ignore it, unfortunately. If the child installs its own HUP handler, we can not affect it.
The maximum permissable size for a log file. Once this size is reached, the logfile will be moved to a timestamped name, and a new one opened. The size is given in bytes.
Don't create archive files when the log gets cleaned (due to exceeding the maximum size). Instead, just restart the log file (preserving the last n lines, where n is preserve-lines)
The number of log lines to preserve when rotating but not archiving logs. Note that up to twice this number of lines are kept in memory whilst running, so a larger number increases the memory footprint. Also be careful that the total size of the lines does not itself exceed the maxsize, to avoid unpredictable behaviour. Defaults to 128.
Print a brief help message and exits.
Print a longer help message and exits.
Prints the manual page and exits.
Martyn J. Pearce fluffy@cpan.org
Copyright (c) 2001 Martyn J. Pearce. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
3 POD Errors
The following errors were encountered while parsing the POD:
Expected text after =item, not a bullet
To install Log::Info, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Log::Info
CPAN shell
perl -MCPAN -e shell install Log::Info
For more information on module installation, please visit the detailed CPAN module installation guide.