怎么修改nginx的access.log的时间格式

说明

nginx访问日志的时间格式,原格式为:

03/Jun/2017:02:06:53 +0800

这种日志格式,对于我们来说,不是我们习惯的日志格式。
使用起来不方便。

我们打算修改为

2017-06-03 07:06:53

我们有两种方法可以达到要求

我们的原则是不修改nginx源代码的,以便平滑升级nginx,所以我们选择第二种方法,具体如下:

lua 方法

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '"$remote_addr" "$fmt_localtime" "$request_id" "$requ
                      '"$status" "$body_bytes_sent" "$request_length" "$htt
                      '"$http_user_agent" "$http_x_forwarded_for" "$http_ho
    #access_log  /data/log/nginx/access.log  main;

    map $host $fmt_localtime {
        default '';
    }

    log_by_lua_block {
       ngx.var.fmt_localtime = ngx.localtime();
    }

  ...
 }

1) 首先我们自定了一个nginx 变量 $fmt_localtime,因为在http context不能够使用 set $variable。

所以我们采用map的方式如下

    map $host $fmt_localtime {
        default '';
    }

2) 然后我们用 log_by_lua_block 设置 ngx.fmt_localtime的时间

3) 设置日志格式 log_format

时间: 2024-12-21 19:33:19

怎么修改nginx的access.log的时间格式的相关文章

如何修改nginx源代码改变访问日志的时间格式

由于公司领导说要把nginx访问日志存进数据库,然后利用程序进行分析,但是nginx访问日志的时间格式是:[17/Jun/2013:14:42:13 +0400] 这种格式不能用datetime格式存进数据库,只能以字符串的格式存进数据库,但是以字符串的格式存进数据库不好按天来进程查询分析,所以需要更改nginx访问日志的时间格式,经过网上查找资料得知更改源代码可以再进行编译可以更改nginx访问日志的格式,但是公司里的程序员都是PHP的,没有人懂C语言,想来想去只有我自己改源码然后编译安装(虽

nginx 如何将后端squid缓存命中率字段输出到自己的access.log当中?

问题描述 nginx 如何将后端squid缓存命中率字段输出到自己的access.log当中? 如题,由于需要统计缓存命中率,缓存后端使用的是squid,有什么办法能将squid的缓存命中率字段打印到nginx的access.log当中? 解决方案 这个access.log是nginx自己写的,没有给你定制化,你只能后续再用程序来处理

MSSQL-应用案例-SQL Server 2016基于内存优化表的列存储索引分析Web Access Log

问题引入 在日常的网站运维工作中,我们需要对网站客户端访问情况做统计.汇总.分析和报表展示,以数据来全面掌控网站运营和访问情况.当不可预知的意外情况发生时,我们可以快速发现问题以及采取相应的措施.比如:当网站受到黑客攻击时的流量陡增,又或者是网站某个资源发生意外抛异常等情况. 在提供Web服务的服务器上,比如IIS.Apache都存在访问日志记录,这篇是文章是以SQL Server 2016基于内存优化表的列存储索引来分析Apache Web Access Log为例,讲解分析网站访问情况,因此

定时备份mysql, 定时切割nginx access log的方法_Mysql

定时备份mysql 放入 /etc/cron.hourly/ 复制代码 代码如下: #!/bin/bash DUMP=/usr/local/webserver/mysql/bin/mysqldump OUT_DIR=/data1/backup/ DB_NAME=数据库名 DB_USER=数据库用户 DB_PASS=数据库密码 #How much days backup most DAYS=3 #12 hours ago MINS=720 #Core of script cd $OUT_DIR D

tomcat 和 jboss access log 日志输出详解

工作中nginx+jboss/tomcat反向代理集成,想打开后端jboss的access log, 配置在:/home/admin/wdetail/conf/tomcat-server.xml 开启日志将下面内容的注释去掉:            <valve classname="org.apache.catalina.valves.AccessLogValve" <="" div="" style="word-wrap

详解Nginx服务器中配置超时时间的方法_nginx

一.啥时候用到        用来设置请求资源和服务器返回的时间,保证一个请求占用固定时间,超出后报504超时!这样可以保证一个请求占用过长时间. 二.主要参数       使用nginx服务器如果遇到timeou情况时可以如下设置参数,使用fastcgi:          fastcgi_connect_timeout 75;  链接          fastcgi_read_timeout 600;   读取          fastcgi_send_timeout 600;   发请

nginx日志配置 nginx日志log以JSON格式记录

首先,我们来看看nginx日志配置 日志对于统计排错来说非常有利的.本文总结了nginx日志相关的配置如access_log.log_format.open_log_file_cache.log_not_found.log_subrequest.rewrite_log.error_log. nginx有一个非常灵活的日志记录模式.每个级别的配置可以有各自独立的访问日志.日志格式通过log_format命令来定义.ngx_http_log_module是用来定义请求日志格式的. 1. access

怎么限制Apache日志文件大小(error.log、access.log)

如何删除error.log.access.log文件以及限制Apache日志文件大小的方法介绍,Apache服务器下access.log以及error.log日志文件一直没有没有动过,今天wordpress 的MYSQL数据库连接错误,出现了2003 错误,原来是error.log.access.log太大了,文件有30个G,下面是在网上搜索到的删除error.log.access.log文件方法. 在 Windows 下删除error.log.access.log文件实例: 删除 Apache

Apache Access Log中的OPTIONS *的含义

Apache Access Log中的OPTIONS *的含义 在Apache的Access Log中会看到很多如下的访问日志: 127.0.0.1 - - [05/May/2011:10:54:07 +0800] "OPTIONS * HTTP/1.0" 200 - 127.0.0.1 - - [05/May/2011:10:54:08 +0800] "OPTIONS * HTTP/1.0" 200 - 127.0.0.1 - - [05/May/2011:10: