25yicms利用ASP.NET(C#)+MSSQL技术全力打造功能最强大的营销型企业网站管理系统,企业做网站系统,做网站软件,提供div+css企业网站模板。
阅读内容

让Apache每天生成新的日志文件


时间:2015/06/16   来源:企业做网站
 Apache在运行期间,会产生两个重要的日志文件,分别是access.log和error.log。这两个日志文件可以帮助我们分析网站的运行情况,但是也会带来一个问题,就是这两个日志文件会越来越大,越来越大。我们的网站都是长年累月地提供信息服务,时间长了,这两个日志文件会非常大,甚至到几百G的量级。
 
日志文件太大,至少会带来3个问题:
1, 影响服务器的效率,日志文件太大,再往里面写日志就会非常效率地下;
2, 磁盘空间占用过多;
3, 日志太多,无法分析;
 
但是,我们又不能够不让Apache记录日志,除非我们完全不用分析日志。一个解决的思路是,让Apache每天生成新的日志文件。每天一个文件,管理起来会方便很多。
要达到这个目的,需要我们修改httpd.conf文件。
#
# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here.  If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
#
#ErrorLog "logs/error.log"
ErrorLog "|bin/rotatelogs.exe -l logs/kerror.log 86400"
 
#
# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
#
LogLevel warn
 
<IfModule log_config_module>
    #
    # The following directives define some format nicknames for use with
    # a CustomLog directive (see below).
    #
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
 
    <IfModule logio_module>
      # You need to enable mod_logio.c to use %I and %O
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
 
    #
    # The location and format of the access logfile (Common Logfile Format).
    # If you do not define any access logfiles within a <VirtualHost>
    # container, they will be logged here.  Contrariwise, if you *do*
    # define per-<VirtualHost> access logfiles, transactions will be
    # logged therein and *not* in this file.
    #
    #CustomLog "logs/access.log" common
 
    #
    # If you prefer a logfile with access, agent, and referer information
    # (Combined Logfile Format) you can use the following directive.
    #
    #CustomLog "logs/access.log" combined
    CustomLog "|bin/rotatelogs.exe -l logs/kaccess.log 86400" combined
</IfModule>
如上高亮的第9和45行是修改的配置,使用apache自带的rotatelogs.exe工具实现每天生成新日志。(我故意写成了kaccess.log,这个名字随便起)
 
这两行配置有3个特别注意的地方:
1, 一定要把.exe写出来;
2, 日志文件的名称如果含有%y%m%d,apache就会出错;(我在网络上找到的信息资料几乎都是说要这样给文件命名,但是在我这里就是不能成功,apache无法启动,提示net helpmsg 3547,最后自己研究rotatelogs.exe程序的命令参数,没有看到对于文件名能够支持%y%m%d这样的参数的说明,去掉%y%m%d之后,apache就可以正常启动了,生成的日志文件自带一个数字后缀。)
没有%y%m%d参数,生成的日志文件自带一个数字后缀。
没有%y%m%d参数,生成的日志文件自带一个数字后缀。
3, -l(小写的L),表示使用本地时间;86400就是一天的时间;
一个小经验
如果修改apache配置文件导致apache无法正常启动,可以去查error.log,就是错误日志,里面可能会有丰富的错误原因信息。
+上一篇 没有了
+下一篇 IIS的功能委派是什么及举例说明
点击次数:       打印此页  关闭