• 的神话少了没人相信我,继续,希望你造出更多的神话来 2019-03-16
  • 江西人存款1.66万亿元 2019-03-16
  • 25yicms利用ASP.NET(C#)+MSSQL技术全力打造功能最强大的营销型企业网站管理系统,企业做网站系统,做网站软件,提供div+css企业网站模板。
    阅读内容

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


    时间:2015/06/16   来源:黑龙江福彩22选5开奖
     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的功能委派是什么及举例说明
    点击次数:       打印此页  关闭
  • 的神话少了没人相信我,继续,希望你造出更多的神话来 2019-03-16
  • 江西人存款1.66万亿元 2019-03-16