zoukankan      html  css  js  c++  java
  • Nginx如何对日志文件进行配置?

    在我们日常工作开发中,对调试bug最重要的手段就是查看日志和断点调试了。
    今天我们来说日志文件,Nginx的日志文件一般保存的是访问日志和错误日志。

    1. 用来log_format指令设置日志格式

      log_format指令语法:log_format name format [format ...]
      Nginx默认的combined格式如下:
      log_format combined '$remote_addr - $remote_user [$time_local] '
                                          '"$request" $status $body_bytes_sent '
                                          '"$http_referer" "$http_user_agent"';
      定义日志使用的字段及其作用:
    
            $remote_addr            和$http_x_forward_for用于记录IP地址
            $remote_user            用于记录远程客户端用户名称
            $time_local             用于记录访问时间和时区
            $request                用于记录请求URL与HTTP协议
            $status                 用于记录请求状态
            $body_bytes_sent        用于记录发送给客户端的文件主体内容大小,不包括响应头的大小
            $http_referer           用于记录是从哪个页面链接访问过来的
            $http_user_agent        用于记录客户端浏览器的相关内容
            $bytes_sent             用于发送给客户端的总字节数
            $connection             用于连接的序列号
            $connection_requests    用于当前通过一个连接获得的请求数量
            $msec                   用于日志写入时间。单位为秒,精度是毫秒
            $pipe                   用于如果请求是通过HTTP流水线(pipelined)发送,pipe值为“p”,否则为“.”
            $request_length         用于请求的长度(包括请求行,请求头和请求正文)
            $request_time           用于请求处理时间,单位为秒,精度毫秒
            $time_iso8601           用于ISO8601标准格式下的本地时间
            $time_local             用于记录访问时间与时区
    

    2. 用access_log指令指定访问日志文件存放路径

        access_log指令语法:access_log path [format [buffer=size | off]]
        format即第一点中log_format的name,如何设置了format,那么日志文件就会按设置的日志格式生成日志文件.
        butter=size表示内存缓冲区的大小,例如可以设置buffer=32k
    

    3. 用error_log指令指定错误日志文件存放路径

        error_log    <FILE>    <LEVEL>;
        <FILE>:可以指定任意存放日志的目录
        <LEVEL>:错误日志级别,常见的错误日志级别有[debug | info | notice | warn | error | crit | alert | emerg],级别越高记录的信息越少。
        生产场景一般是 warn | error | crit 这三个级别之一
    
        关闭error_log的方法:error_log /dev/null;
    
  • 相关阅读:
    什么是Python???
    python中闭包详解
    python类中的__init__和__new__方法
    python中不需要函数重载的原因
    装饰器详解
    IDEA中导入非maven项目(从eclipse中迁移过来的)
    CLion、cmake、mingw、openCV安装
    跨域问题的一些思考
    maven中jar包手动导入
    对于序列化的理解
  • 原文地址:https://www.cnblogs.com/phonecom/p/10453878.html
Copyright © 2011-2022 走看看