模块 ngx_stream_log_module
access_log log_format open_log_file_cache 的配置 Directives 示例 |
模块 (1.11.4) 写入会话日志
以指定的格式。ngx_stream_log_module
示例配置
log_format basic '$remote_addr [$time_local] ' '$protocol $status $bytes_sent $bytes_received ' '$session_time'; access_log /spool/logs/nginx-access.log basic buffer=32k;
Directives
语法: |
access_log
access_log |
---|---|
默认值: |
access_log off; |
上下文: |
stream ,server |
设置路径、格式、
以及缓冲日志写入的配置。
可以在同一配置级别上指定多个日志。
可以通过指定 syslog 来配置日志记录到 syslog
第一个参数中的 “” 前缀。
特殊值取消当前级别上的所有Directives。syslog:
off
access_log
如果使用 or 参数,则将缓冲对 log 的写入。buffer
gzip
缓冲区大小不得超过对磁盘文件的原子写入的大小。 对于 FreeBSD,这个大小是无限的。
启用缓冲后,数据将被写入文件:
- 如果下一个 log 行不适合缓冲区;
- 如果缓冲数据早于参数指定的时间;
flush
- 当 worker 进程重新打开日志时 文件或正在关闭。
如果使用该参数,则缓冲数据将
在写入文件之前进行压缩。
压缩级别可以设置在 1 之间(最快,压缩较少)
和 9(最慢,最佳压缩)。
默认情况下,缓冲区大小等于 64K 字节,压缩级别
设置为 1。
由于数据被压缩在原子块中,因此日志文件可以解压缩
或随时由 “” 读取。gzip
zcat
例:
access_log /path/to/log.gz basic gzip flush=5m;
要使 gzip 压缩正常工作,必须使用 zlib 库构建 nginx。
文件路径可以包含变量 但是这样的日志有一些限制:
- 其凭证被 Worker 进程使用的用户应该 有权在具有 此类日志;
- 缓冲写入不起作用;
- 每次日志写入时,都会打开和关闭文件。
但是,由于可以存储常用文件的描述符
在缓存中,写入旧文件
可以在 open_log_file_cache Directives的参数指定的时间内继续
valid
该参数启用条件日志记录。
如果计算结果为 “0”,则不会记录会话
或空字符串。if
condition
语法: |
log_format
|
---|---|
默认值: | — |
上下文: |
stream |
指定日志格式,例如:
log_format proxy '$remote_addr [$time_local] ' '$protocol $status $bytes_sent $bytes_received ' '$session_time "$upstream_addr" ' '"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';
参数 (1.11.8) 允许设置或字符转义
在 Variables 中,默认情况下,使用 Escescapeing。
参数 (1.13.10) 禁用转义。escape
json
default
default
none
对于转义,
字符 “”、“ ”“、
以及值小于 32 或大于 126 的其他字符
转义为 “”。
如果未找到变量值,则
将记录连字符 (“”)。default
"
\
\xXX
-
对于转义,
不允许所有字符
在 JSON 字符串中将被转义:
字符 “” 和
“” 被转义为
“” 和 “”,
值小于 32 的字符将被转义为
“”,
“”,
“”,
“”,
“” 或
“”.json
"
\
\"
\\
\n
\r
\t
\b
\f
\u00XX
语法: |
open_log_file_cache
open_log_file_cache |
---|---|
默认值: |
open_log_file_cache off; |
上下文: |
stream ,server |
定义一个缓存,用于存储常用日志的文件描述符 其名称包含变量。 该Directives具有以下参数:
max
- 设置缓存中的最大描述符数; 如果缓存已满,则为最近最少使用 (LRU) 描述符已关闭
inactive
- 设置关闭缓存描述符的时间 如果在此期间无法访问; 默认情况下为 10 秒
min_uses
- 设置在此期间使用文件的最小次数
由参数
让描述符在缓存中保持打开状态;
默认情况下为 1
inactive
valid
- 设置时间,在此时间之后应检查文件 仍然存在于同名中;默认情况下为 60 秒
off
- 禁用缓存
使用示例:
open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;