apache error_log日志详解
2015-12-06 13:28
645 查看
apache error_log日志详解
--转载
这里,首先介绍一下领个相关的指令:ErrorLog 和 LogLevel
ErrorLog:
如果file-path以一个管道符号(|)开头,那么会为它指定一个命令来处理错误日志。
如果系统支持,使用"
LogLevel:
可以选择下列level,依照重要性降序排列:
当指定了某个级别时,所有级别高于它的信息也会被同时记录。比如,指定 LogLevel info ,则所有notice和warn级别的信息也会被记录。
建议至少使用crit级别。
示例如下:LogLevel notice
注意:当错误日志是一个单独分开的正式文件的时候,notice级别的消息总是会被记录下来,而不能被屏蔽。但是,当使用syslog来记录时就没有这个问题。
下面将对错误日记进行详细说明:
错误日志是最重要的日志文件,其文件名和位置取决于
错误日志通常被写入一个文件(unix系统上一般是
错误日志的格式相对灵活,并可以附加文字描述。某些信息会出现在绝大多数记录中,一个典型的例子是:
其中,第一项是错误发生的日期和时间;第二项是错误的严重性,
错误日志中会包含类似上述例子的多种类型的信息。此外,CGI脚本中任何输出到
用户可以增加或删除错误日志的项。但是对某些特殊请求,在访问日志(access log)中也会有相应的记录,比如上述例子在访问日志中也会有相应的记录,其状态码是403,因为访问日志也可以定制,所以可以从访问日志中得到错误事件的更多信息。
在测试中,对任何问题持续监视错误日志是非常有用的。在unix系统中,可以这样做:
--转载
这里,首先介绍一下领个相关的指令:ErrorLog 和 LogLevel
ErrorLog:
说明 | 存放错误日志的位置 |
---|---|
语法 | ErrorLogfile-path|syslog[:facility] |
默认值 | ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows 和 OS/2) |
作用域 | server config, virtual host |
ErrorLog指令指定了当服务器遇到错误时记录错误日志的文件。如果file-path不是一个以斜杠(/)开头的绝对路径,那么将被认为是一个相对于
ServerRoot的相对路径。
示例
ErrorLog /var/log/httpd/error_log
如果file-path以一个管道符号(|)开头,那么会为它指定一个命令来处理错误日志。
示例
ErrorLog "|/usr/local/bin/httpd_errors"
如果系统支持,使用"
syslog"替代文件名将通过syslogd(8)来记载日志。默认将使用系统日志机制
local7,但您可以用"
syslog:facility"语法来覆盖这个设置,其中,facility的取值为syslog(1)中记载的任何一个名字。
示例
ErrorLog syslog:user
注意
当在非Unix平台上输入文件路径的时候,路径分隔符必须统一使用正斜线(/),即使那个平台本身使用反斜线(\)。LogLevel:
说明 | 控制错误日志的详细程度 |
---|---|
语法 | LogLevellevel |
默认值 | LogLevel warn |
作用域 | server config, virtual host |
Level | 描述 | 例子 |
---|---|---|
emerg | 紧急(系统无法使用) | "Child cannot open lock file. Exiting" |
alert | 必须立即采取措施 | "getpwuid: couldn't determine user name from uid" |
crit | 致命情况 | "socket: Failed to get a socket, exiting child" |
error | 错误情况 | "Premature end of script. headers" |
warn | 警告情况 | "child process 1234 did not exit, sending another SIGHUP" |
notice | 一般重要情况 | "httpd: caught SIGBUS, attempting to dump core in ..." |
info | 普通信息 | "Server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers)..." |
debug | 调试信息 | "Opening config file ..." |
建议至少使用crit级别。
示例如下:LogLevel notice
注意:当错误日志是一个单独分开的正式文件的时候,notice级别的消息总是会被记录下来,而不能被屏蔽。但是,当使用syslog来记录时就没有这个问题。
下面将对错误日记进行详细说明:
错误日志是最重要的日志文件,其文件名和位置取决于
ErrorLog指令。Apache httpd将在这个文件中存放诊断信息和处理请求中出现的错误,由于这里经常包含了出错细节以及如何解决,如果服务器启动或运行中有问题,首先就应该查看这个错误日志。
错误日志通常被写入一个文件(unix系统上一般是
error_log,Windows和OS/2上一般是
error.log)。在unix系统中,错误日志还可能被重定向到
syslog或通过管道操作传递给一个程序。
错误日志的格式相对灵活,并可以附加文字描述。某些信息会出现在绝大多数记录中,一个典型的例子是:
[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test
其中,第一项是错误发生的日期和时间;第二项是错误的严重性,
LogLevel指令使只有高于指定严重性级别的错误才会被记录;第三项是导致错误的IP地址;此后是信息本身,在此例中,服务器拒绝了这个客户的访问。服务器在记录被访问文件时,用的是文件系统路径,而不是Web路径。
错误日志中会包含类似上述例子的多种类型的信息。此外,CGI脚本中任何输出到
stderr(标准错误)的信息会作为调试信息原封不动地记录到错误日志中。
用户可以增加或删除错误日志的项。但是对某些特殊请求,在访问日志(access log)中也会有相应的记录,比如上述例子在访问日志中也会有相应的记录,其状态码是403,因为访问日志也可以定制,所以可以从访问日志中得到错误事件的更多信息。
在测试中,对任何问题持续监视错误日志是非常有用的。在unix系统中,可以这样做:
tail -f error_log
相关文章推荐
- Apache Shiro 快速入门教程,shiro 基础教程
- org.apache.hadoop.hbase.ClockOutOfSyncException: org.apache.hadoop.hbase.ClockOutOfSyncException: Se
- guava之只读、函数式编程(过滤 转换 约束)、集合与apacheJAVA134-135
- apache 虚拟主机详解 有图哦
- apache虚拟主机
- LAMP 1.7Apache用户认证
- 报错apachectl restart
- 报错apachectl -t
- ubuntu apache linux
- Eclipse中Maven新建web项目报错Could not calculate build plan:Plugin org.apache.maven.plugins...
- 安装Apache详细步骤 (绿色版Apache的安装)自己安装过程中整理
- Apache服务器配置Php7
- Apache服务器
- 解决apache 443端口被占用
- Apache Lucene 5.x 集成中文分词库 IKAnalyzer
- Apache 下SVN项目管理使用说明
- Windows基于Apache的svn服务器配置
- Apache Commons-SCXML系列之项目介绍
- Windows下Subversion和Apache的安装及配置(一)
- Apache thrift 研究小记