Line 1: | Line 1: | ||
== Fedora Log Files == | == Fedora Log Files == | ||
This document describes the guidelines for log file(s), for use and inclusion in Fedora packages. | This document describes the guidelines for log file(s), for use and inclusion in Fedora packages. | ||
For the purposes of these guidelines, a log file is defined as an text file that an application outputs into in the /var/log/ directory. | |||
== Log Files on the filesystem == | == Log Files on the filesystem == |
Revision as of 12:51, 23 February 2012
Fedora Log Files
This document describes the guidelines for log file(s), for use and inclusion in Fedora packages.
For the purposes of these guidelines, a log file is defined as an text file that an application outputs into in the /var/log/ directory.
Log Files on the filesystem
Packages with log files must reside in their own directory under /var/log which must be named /var/log/$package_name
Each log file in that directory must end with .log filename.
Each package that ships log file(s) must also ship a logrotation file that rotates the log file(s).
Log Files Packaging
...
Name: ..... Source1: %{name}.logrotate Requires: logrotate %install ... mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/%{name} mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d %{__install} -p -D -m 0700 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/%{name}.conf %files ... %config(noreplace) %{_sysconfdir}/logrotate.d/%{name}.conf %dir %attr(0700,root,root) %{_localstatedir}/log/%{name}
Logrotate file
If a package contains a logfile then it needs to also include a properly installed logrotate file.
Each logrotate file must end with the filename .conf. It must be placed /etc/logrotate.d/ and must have 0644 filepermission and be owned by root.
Here are examples of an logrotate file.
Example minimal logrotate file
/var/log/example/*log { missingok # If the log file is missing, go on to the next one without issuing an error message notifempty # Don't do any rotation if the logfile is empty compress # Compress older files with gzip delaycompress # Don't compress yesterdays files }
Example minimal logrotate log file with user create mode
/var/log/example/*log { missingok # If the log file is missing, go on to the next one without issuing an error message notifempty # Don't do any rotation if the logfile is empty compress # Compress older files with gzip delaycompress # Don't compress yesterdays files create 640 owner group # Set create mode immediately after rotation }
Example minimal logrotate file with daemon restart
/var/log/example/*log { missingok # If the log file is missing, go on to the next one without issuing an error message notifempty # Don't do any rotation if the logfile is empty compress # Compress older files with gzip delaycompress # Don't compress yesterdays files sharedscripts # Scripts are only run once for all files in directory postrotate /usr/bin/systemctl restart example.service 2>/dev/null || true endscript }
Example minimal logrotate file with user create mode and daemon restart
/var/log/example/*log { missingok # If the log file is missing, go on to the next one without issuing an error message notifempty # Don't do any rotation if the logfile is empty compress # Compress older files with gzip delaycompress # Don't compress yesterdays files create 640 owner group # Set create mode immediately after rotation sharedscripts # Scripts are only run once for all files in directory postrotate /usr/bin/systemctl restart example.service 2>/dev/null || true endscript }