标签:
用accessJog指令指定服务器日志文件存放路径
用log_format指令设置了日志格式之后,需要用access_log指令指定日志文件存放路径。access_log指令的语法如下:
access_logpath[format[buffer=sizeIoff]]
其中path表示日志文件的存放路径,format表示使用log_format指令设置的日志格式的名称,buffer=size表示设置内存缓冲区的大小,例如可以设置buffer=32k。(1)如果不想记录日志,可以使用以下指令关闭日志记录:access_logoff;
(2)如果想使用默认的《^*匕&格式的日志记录,可以使用以下示例:access_log/datal/logs/filename.log;
或者
access_log/datal/logs/filename.logcombined;
(3)如果想使用自定义格式的日志记录,可以使用以下示例,其中的myl0gf0rmat是日志格式名称:
log_formatmylogformat’$remote_addr-$remote_user[$time_local]”$request”‘
‘$status$body_bytes_sent”$http_referer”*
‘H$http__user_agentM$http_x_forwarded_for’;
access_log/datal/logs/access.Iogmylogformatbuffer=32k;
(4)在吨丨狀0.7.4之后的版本中,IBM服务器指令中的日志文件路径可以包含变量,例如:access_log/datal/logs/$server_name.logcombined;
假设server_name指令设置的虚拟主机名称为test.domain.com,那么access_log指令将把访问日志记录在/datal/logs/test.domain.com.log文件中。
如果日志文件路径中含有变量,将存在以下一些限制:
(1)Nginx进程设置的用户和组必须有对该路径创建文件的权限。假设Nginx的user指令IBM服务器代理设置的用户名和用户组都是www,而他131爪^/目录的用户名和用户组为root,日志文件/dataMogs/test.domain.com.log将无法被Nginx创建;
(2)缓冲将不会被使用;
(3)对于每一条日志记录,日志文件都将先打开文件,宿迁波仔再写入日志记录,然后马上关闭。为了提高包含变量的日志文件存放路径的性能,须要使用open_log_file_cache指令设置经常被使用的日志文件描述符缓存。
open_log_file_cache指令主要用来设置含有变量的日志路径的文件描述符缓存,它的语法如下:
open_log_file_cachemax=N[inactive=time][min_uses=N][valid=time]Ioff
该指令默认是禁止的,等同于:open_log_file—cacheoff; .
open_log_file_cache指令的各项参数说明如下:
max:设置缓存中的最大文件描述符数量。如果超过设置的最大文件描述符数量,则采用LRU(LeastRecentlyUsed)算法清除“较不常使用的文件描述符”。LRU(LeastRecentlyUsed)算法的基本概念是:IBM服务器当内存缓冲区剩余的可用空间不够时,缓冲区尽可能地先保留使用者最常使用的数据,将最近未使用的数据移出内存,腾出空间来加载另外的数据。
inactive:设置一个时间,如果在设置的时间内没有使用此文件描述符,则自动删除此描述符。此参数为可选参数,默认的时间为10秒钟。
min_uses:在参数^^^^^指定的时间范围内,如果IBM服务器日志文件超过被使用的次数,则将该日志文件的描述符记入缓存。默认次数为1。
valid:设置多长时间检查一次,看一看变量指定的日志文件路径与文件名是否仍然存在^默认时间为60秒。
off:禁止使用缓存。
open_log_file_cache指令的设置不例如下:open_log_file_cachemax=1000inactive=20smin_uses=2valid=lm
|