<-
Apache HTTP 服务器 2.4 > 手册页:rotatelogs

rotationlogs-管道记录程序以旋转Apache日志

rotatelogs是与Apache的管道日志文件功能结合使用的简单程序。它支持基于时间间隔或日志的最大大小的轮换。

支持Apache!

也可以看看

最佳

概要

rotatelogs [ -l ] [ -L linkname ] [ -p program ] [ -f ] [ -D ] [ -t ] [ -v ] [ -e ] [ -c ] [ -n number-of-files ] logfile rotationtime|filesize(B|K|M|G) [ offset ]

最佳

选件

-l
导致使用本地时间而不是GMT作为间隔或strftime(3)基于大小旋转的格式的基础。
-L 链接名

导致从当前日志文件到指定链接名称的硬链接。可以使用像这样的命令来连续观察日志,记录日志的旋转情况 tail -F linkname

如果链接名称不是绝对路径,它是相对于rotatelogs“工作目录,这是ServerRootrotatelogs由服务器运行。

-p 程序
如果给出,rotatelogs将在每次打开新的日志文件时执行指定的程序。新打开文件的文件名作为第一个参数传递给程序。如果在轮换之后执行,则旧日志文件将作为第二个参数传递。 rotatelogs在继续操作之前不会等待指定的程序终止,并且不会记录终止时返回的任何错误代码。产生的程序使用与rotatelogs相同的stdin,stdout和stderr,并且还继承了环境。
-f
使日志文件在启动后立即立即打开 rotatelogs,而不是等待读取第一个日志文件条目(对于非繁忙站点,在启动服务器与处理第一个请求之间可能会有相当长的延迟,表示在此之前关联的日志文件“不存在”,这会导致某些自动日志记录工具出现问题)
-D
创建尚不存在日志文件的路径的父目录。这允许strftime(3) 在路径中使用格式,而不仅仅是文件名。
-t
导致日志文件被截断而不是被旋转。当通过tail之类的命令实时处理日志并且不需要归档数据时,这很有用。没有在文件名中添加后缀,但是将使用包含'%'字符的格式字符串。
-v
在STDERR上产生详细的输出。输出包含配置解析的结果以及所有文件打开和关闭操作。
-e
回声登录到标准输出。当需要通过链中的其他工具实时进一步处理日志时,此功能很有用。
-c
为每个间隔创建日志文件(即使为空)。
-n number-of-files
使用没有时间戳记的文件名的循环列表。使用-n 3,打开的一系列日志文件将是“ logfile”,“ logfile.1”,“ logfile.2”,然后覆盖“ logfile”。在2.4.5及更高版本中可用。
logfile

日志文件的路径和基本名称。如果日志文件 包含任何'%'字符,则将其视为的格式字符串 strftime(3)。否则,后缀 .nnnnnnnnnn会自动添加,并且是时间(以秒为单位)(除非使用-t选项)。两种格式都从当前周期的开始计算开始时间。例如,如果指定的旋转时间为86400,则从strftime(3)格式创建的小时,分​​钟和秒字段都将为零,这是指当前24小时周期的开始(午夜)。

使用strftime(3)文件名格式时,请确保日志文件格式具有足够的粒度,以使每次旋转日志时都产生不同的文件名。否则,轮换将覆盖同一文件,而不是启动一个新文件。例如,如果日志文件/var/log/errorlog.%Y-%m-%d与日志旋转在5兆字节,但在5兆是在同一天达到两次,会产生相同的日志文件名称和日志轮换会继续写入同一文件。

如果日志文件不是绝对路径,它是相对于rotatelogs“工作目录,这是ServerRootrotatelogs由服务器运行。

rotationtime
日志文件轮换之间的时间(以秒为单位)。旋转发生在此间隔的开始。例如,如果轮换时间为3600,则日志文件将在每小时开始时轮换;如果轮换时间为86400,则日志文件将在每晚的午夜旋转。(如果在间隔时间内未记录任何数据,则不会创建任何文件。)
filesize(B|K|M|G)
最大文件大小,后跟一个字母 B(字节),K(千字节),(兆M字节)或G(千兆字节)之一。

指定时间和大小后,必须在时间之后给出大小。只要达到时间或大小限制,旋转就会发生。

offset
从UTC偏移的分钟数。如果省略,则假定为零,并使用UTC。例如,要使用UTC -5时区中的本地时间,请-300为此参数指定一个值。在大多数情况下,-l应使用而不是指定偏移量。
最佳

例子

CustomLog "|bin/rotatelogs /var/log/logfile 86400" common

这将创建文件/var/log/logfile.nnnn,其中nnnn是日志名义上开始的系统时间(此时间始终是轮换时间的倍数,因此您可以与其同步cron脚本)。在每个轮换时间结束时(此处为24小时之后),将启动一个新日志。

CustomLog "|bin/rotatelogs -l /var/log/logfile.%Y.%m.%d 86400" common

这将创建文件/var/log/logfile.yyyy.mm.dd,其中yyyy是年,mm是月,dd是月中的日。日志将在每天本地时间午夜切换到新文件。

CustomLog "|bin/rotatelogs /var/log/logfile 5M" common

每当日志文件大小达到5 MB时,此配置都会对其进行轮换。

ErrorLog "|bin/rotatelogs /var/log/errorlog.%Y-%m-%d-%H_%M_%S 5M"

每当错误日志文件的大小达到5 MB时,此配置都会对其进行轮换,并且将以形式创建日志文件名的后缀 errorlog.YYYY-mm-dd-HH_MM_SS

CustomLog "|bin/rotatelogs -t /var/log/logfile 86400" common

这将创建文件/ var / log / logfile,在启动时将其截断,然后每天将其截断一次。在这种情况下,预计将有一个单独的进程(例如tail)将实时处理文件。

最佳

可移植性

所有strftime(3)实现均应支持以下日志文​​件格式的字符串替换,有关strftime(3)特定于库的扩展,请参见手册页。

%A工作日全名(本地化)
%a3个字符的工作日名称(本地化)
%B完整的月份名称(本地化)
%b3个字符的月份名称(本地化)
%c日期和时间(本地化)
%d每月2位数的日期
%H2位小时(24小时制)
%I2位小时(12小时制)
%j一年中的三位数
%M2位数分钟
%m2位数的月份
%p12小时制的上午/下午(本地化)
%S2位数秒
%U一年中的两位数(星期几的第一天)
%W每年2位数的星期(星期一的第一天)
%w1位数字的工作日(星期日的第一天)
%X时间(本地化)
%x日期(本地化)
%Y4位数的年份
%y2位数的年份
%Z时区名称
%%文字“%”

可用语言: zh  |  fr  |  ko  |  TR 

最佳

注释

注意:
这不是“问答”部分。此处放置的评论应指向有关改进文档或服务器的建议,如果实施或被认为无效/偏离主题,我们的主持人可以将其删除。有关如何管理Apache HTTP Server的问题,应直接指向我们的IRC频道#httpd(位于Freenode上),或发送至我们的邮件列表
目前,此页面已禁用评论。