zoukankan      html  css  js  c++  java
  • nginx 直接在配置文章中设置日志分割

    只需要在server配置中,配置一个脚本即可,目前这个是定义了日,可以定义到分。
    set多添加几个参数即可

    server {
    listen 80 default_server;
    root "/app/www/public";
    if ($time_iso8601 ~ "^(d{4})-(d{2})-(d{2})T(d{2}):(d{2}):(d{2})") {
    set $year $1;
    set $month $2;
    set $day $3;
    }
    access_log /app/logs/api-access-$year-$month-$day.log main;
    error_log /app/logs/api-error.log;
    # Php files
    location ~ .php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php-fpm7.sock;
    }
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    直接在nginx配置文件中,配置日志循环,而不需使用logrotate或配置cron任务。需要使用到timeiso8601内嵌变量来获取时间。 time_iso8601 内嵌变量来获取时间。time
    i

    so8601内嵌变量来获取时间。time_iso8601格式如下:2015-08-07T18:12:02+02:00。然后使用正则表达式来获取所需时间的数据。

    按天分割日志
    使用下面的代码块

    if ($time_iso8601 ~ "^(d{4})-(d{2})-(d{2})") {
    set $year $1;
    set $month $2;
    set $day $3;
    }

    access_log /data/logs/nginx/www.ttlsa.com-$year-$month-$day-access.log;

    1
    2
    3
    4
    5
    6
    7
    8
    也可以使用Perl语法来捕获,如下:


    if ($time_iso8601 ~ "^(?<year>d{4})-(?<month>d{2})-(?<day>d{2})") {}

    access_log /data/logs/nginx/www.ttlsa.com-$year-$month-$day-access.log;

    1
    2
    3
    4
    5
    按时、分、秒分割

    if ($time_iso8601 ~ "^(d{4})-(d{2})-(d{2})T(d{2}):(d{2}):(d{2})")
    {
    set $year $1;
    set $month $2;
    set $day $3;
    set $hour $4;
    set $minutes $5;
    set $seconds $6;
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    非常方便的进行日志分割。建议按小时分割日志,方便分析查询日志。

  • 相关阅读:
    项目沟通管理
    项目人力资源管理
    项目质量管理
    项目成本管理
    项目时间管理
    项目的范围管理
    css3:flex overflow ellipsis 层级处理
    Python3.7在win10下安装PyAudio库以及实现音频的录制与播放
    利用爬虫、SMTP和树莓派3B发送邮件&续集&(爬取墨迹天气预报信息)
    利用爬虫、SMTP和树莓派3B发送邮件(爬取墨迹天气预报信息)
  • 原文地址:https://www.cnblogs.com/ExMan/p/11151138.html
Copyright © 2011-2022 走看看