在centos 中的日志设置

ErrorLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/error_log-%Y.%m.%d-%H 86400 480"


CustomLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/access_log-%Y.%m.%d.%H 86400 480" common



附rotatelogs说明


rotatelogs logfile [ rotationtime [ offset ]] | [ filesizeM ]


选项


logfile

它加上基准名就是日志文件名。如果logfile中包含’%',则它会被视为用于的strftime(3)的格式字串;否则,它会被自动加上以秒为单位的.nnnnnnnnnn后缀。这两种格式都表示新的日志开始使用的时间


rotationtime

日志文件回卷的以秒为单位的间隔时间。  86400秒等于24小时,假定24小时一个日志文件





offset

相对于UTC的时差的分钟数。如果省略,则假定为0,并使用UTC时间。比如,要指定UTC时差为-5小时的地区的当地时间,则此参数应为-300。  480则为时差8小时


filesizeM

指定回卷时以兆字节为单位的后缀字母M的文件大小,而不是指定回卷时间或时差



在ubuntu 中的设置

使用apache自带的rotatelog进行日志切割,可将日志的文件名以年月日时分秒保存,如2011-10-21_14_20_00,设置如下:

首先在apache2的目录下有个sites-enabled文件夹,里面有个000-default文件,在该文件夹中加入一下内容:

CustomLog"|/usr/sbin/rotatelogs /var/log/apache2/access_log/access_log.%Y-%m_%d-%H_%M_%S 300 +480 "combined
ErrorLog "|/usr/sbin/rotatelogs /var/log/apache2/error_log/%Y%m%d 600400M"

rotatelogs说明:

rotatelogslogfile[ rotationtime [ offset ]] | [ filesizeM ]

rotationtime指的是设定多少秒后进行日志切割,如这里的300秒,在设定的时间之后系统将自动切割日志;

offset指的是日志时间的偏移量,如果不设置该偏移量,则默认为0,且显示的时间与北京时间会不一样,与北京时间相差8个小时,故建议将其设置为+480,单位为分钟;

filesizeM指的是日志多大之后自动切割,可接受的单位为K,M,G,上面的ErrorLog设置为400M之后自动切割日志。


我的000-default设置如下:

[html]viewplaincopyprint?

1. *:80>

2.        ServerAdmin webmaster@localhost  

3.

4.        DocumentRoot /var/www/  

5./>

6.                Options FollowSymLinks  

7.                AllowOverride None  

8.

9. /var/www/>

10.                Options Indexes FollowSymLinks MultiViews  

11.                AllowOverride None  

12.                Order allow,deny  

13.                allow from all  

14.

15.

16.        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/  

17. "/usr/lib/cgi-bin">

18.                AllowOverride None  

19.                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch  

20.                Order allow,deny  

21.                Allow from all  

22.

23.

24.#       ErrorLog ${APACHE_LOG_DIR}/error.log  

25.

26.        # Possible values include: debug, info, notice, warn, error, crit,  

27.        # alert, emerg.  

28.        LogLevel warn  

29.

30.#       CustomLog ${APACHE_LOG_DIR}/access.log combined  

31.

32.    Alias /doc/ "/usr/share/doc/"  

33. "/usr/share/doc/">

34.        Options Indexes MultiViews FollowSymLinks  

35.        AllowOverride None  

36.        Order deny,allow  

37.        Deny from all  

38.        Allow from 127.0.0.0/255.0.0.0 ::1/128  

39.

40.CustomLog "|/usr/sbin/rotatelogs  /var/log/apache2/access_log/access_log.%Y-%m_%d-%H_%M_%S 300 +480 " combined  

41.ErrorLog "|/usr/sbin/rotatelogs /var/log/apache2/error_log/%Y%m%d 600 400M"

42.

       ServerAdminwebmaster@localhost


       DocumentRoot /var/www/

               OptionsFollowSymLinks

               AllowOverride None

               Options IndexesFollowSymLinks MultiViews

               AllowOverride None

               Order allow,deny

               allow from all


       ScriptAlias /cgi-bin//usr/lib/cgi-bin/

               AllowOverride None

               Options +ExecCGI-MultiViews +SymLinksIfOwnerMatch

               Order allow,deny

               Allow from all


#       ErrorLog${APACHE_LOG_DIR}/error.log


       # Possible values include:debug, info, notice, warn, error, crit,

       # alert, emerg.

       LogLevel warn


#       CustomLog${APACHE_LOG_DIR}/access.log combined


   Alias /doc/"/usr/share/doc/"

       Options Indexes MultiViewsFollowSymLinks

       AllowOverride None

       Order deny,allow

       Deny from all

       Allow from127.0.0.0/255.0.0.0 ::1/128

CustomLog "|/usr/sbin/rotatelogs /var/log/apache2/access_log/access_log.%Y-%m_%d-%H_%M_%S 300 +480 "combined

ErrorLog "|/usr/sbin/rotatelogs /var/log/apache2/error_log/%Y%m%d 600400M"




今天妄图使用apacherotatelogs来回卷Apache日志,翻看手册,很简单



c%o^`(uK+C'`q B
m.G%s0


.u-sN[tGs&sW0CustomLog “|bin/rotatelogs/var/logs/logfile 86400″ common

'|-B~W6uV0DOIT博客|Jh-Wa*R@

我需要两个小时生成一个apache日志,并以时间命名,于是依样画葫芦修改httpd.confDOIT博客]/b9mY:v*OLU*N[

DOIT博客0x5s#} A+a"I-xz

CustomLog “|bin/rotatelogs /var/logs/%Y%m%d%H.logfile7200″ common DOIT博客


N*}^b Fr


"|+Ri"Ha;J0重启apache失败,说明葫芦不能照着画:

\A$SZ5T1o
M0

-k"O9t(g8nDzn0xc0CustomLog“|/usr/local/httpd/bin/rotatelogs /var/logs/%Y%m%d%H.logfile 7200″ common DOIT博客l0j?]8ibi

DOIT博客h,R;rs/lk

修改后apache成功启动,但是生成的日志文件名(以小时命名)有些问题,与服务器时间相差8小时,仔细查看手册,原来是rotatelogs的使用有些机关(有个offset参数,单位是分钟)

)k-E#} V


bc0DOIT 博客 x1Q~&F-Q3YwSL


CustomLog“|/usr/local/httpd/bin/rotatelogs /var/logs/%Y%m%d%H.logfile 7200 480″ common

4Rs#j B#CP'i0DOIT博客,{U^0yCDQ

重启后收工DOIT博客+jBf


Li}n'G


}ekOC-EA N0rotatelogs说明

$l.U-B:c@(i


n%E0


VN_&O


As9wK9M0 rotatelogslogfile [ rotationtime [ offset ]] | [filesizeM ]


*u5D|1f8M9C0DOIT博客mnq4i+LRj

选项
@Z HCQ[0logfile
/^ l}Lor)A0
它加上基准名就是日志文件名。如果logfile中包含’%',则它会被视为用于的strftime(3)的格式字串;否则,它会被自动加上以秒为单位的.nnnnnnnnnn后缀。这两种格式都表示新的日志开始使用的时间。DOIT博客 s'n/~7k&} ~)D d
rotationtimeDOIT
博客+l(dp`0}n
日志文件回卷的以秒为单位的间隔时间DOIT博客I?]cMre
offset
)o([email protected])B0
相对于UTC的时差的分钟数。如果省略,则假定为0,并使用UTC时间。比如,要指定UTC时差为-5小时的地区的当地时间,则此参数应为-300
.Rq OCP0filesizeM
B9_WvZQ#x4]%h rX0
指定回卷时以兆字节为单位的后缀字母M的文件大小,而不是指定回卷时间或时差。

3T/\z!haJ`k0DOIT博客(v5b(G!T


[S@{*k6V
c


========================DOIT博客[T4G2z(hd)`7hn

DOIT博客Z O)] r0[*v\#B6Y

WindowsApache Rotatelogs设置命令范例:

2M&J'@fL.e,C3{;P_0DOIT博客 w6fC$F{ ?

CustomLog “|bin/rotatelogs.exee:\weblog\access%Y%m%d.log 86400 480″common DOIT博客 T'r!A8B,xV9O