在这篇文章中,我们将为您详细介绍nginxerror_log错误日志配置说明的内容,并且讨论关于nginx的错误日志的相关问题。此外,我们还会涉及一些关于apacheErrorLog配置的错误日志和P
在这篇文章中,我们将为您详细介绍nginx error_log 错误日志配置说明的内容,并且讨论关于nginx的错误日志的相关问题。此外,我们还会涉及一些关于apache ErrorLog配置的错误日志和PHP的错误日志有区别吗?、apache – 错误日志中同一行上的几条error_log()消息、cups error_log日志暴增、dbms_errlog.create_error_log 记录 DML 错误日志的知识,以帮助您更全面地了解这个主题。
本文目录一览:- nginx error_log 错误日志配置说明(nginx的错误日志)
- apache ErrorLog配置的错误日志和PHP的错误日志有区别吗?
- apache – 错误日志中同一行上的几条error_log()消息
- cups error_log日志暴增
- dbms_errlog.create_error_log 记录 DML 错误日志
nginx error_log 错误日志配置说明(nginx的错误日志)
nginx 的 error_log 类型如下(从左到右:debug 最详细 crit 最少):[ debug | info | notice | warn | error | crit ]
例如:error_log logs/nginx_error.log crit;
解释:日志文件存储在 nginx 安装目录下的 logs/nginx_error.log ,错误类型为 crit ,也就是记录最少错误信息;
注意 error_log off 并不能关闭日志记录功能,它将日志文件写入一个文件名为 off 的文件中,如果你想关闭错误日志记录功能,应使用以下配置:
error_log /dev/null crit;
把存储位置设置到 Linux 的黑洞中去
同样注意 0.7.53 版本,nginx 在读取配置文件指定的错误日志路径前将使用编译的默认日志位置,如果运行 nginx 的用户对该位置没有写入权限,nginx 将输出如下错误:
[alert]: could not open error log file: open () "/var/log/nginx/error.log" failed (13: Permission denied) log_not_found 语法:log_not_found on | off
默认值:on
使用字段:location
这个参数指定了是否记录客户端的请求出现 404 错误的日志,通常用于不存在的 robots.txt 和 favicon.ico 文件,例如: location = /robots.txt {log_not_found off;}
最后:所有 nginx 配置发生改变时,最好都使用如下命令测试配置是否错误后再使用 -s reload 重载
# /usr/local/nginx/sbin/nginx –t
说明:
1、# 代表 root 权限,不用输入
2、以上是 nginx 的默认安装路径,如果改变了要相应的修改哦,例如 wdcp 的 lanmp 一键安装包 则如需要用如下命令
# /www/wdlinux/nginx/sbin/nginx -s reload
输入后如果提示如下,则表示配置无误:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
这时再使用重载命令让 Nginx 平滑的重新加载配置即可,而不会影响正常访问:
# /usr/local/nginx/sbin/nginx -s reload
apache ErrorLog配置的错误日志和PHP的错误日志有区别吗?
回复内容:
apache errorlog配置的错误日志和php的错误日志有区别吗?
一个是记录Apache服务器的错误,一个是记录PHP的错误。
PHP的错误日志会记录一些PHP语法、解析等导致PHP无法正常运行的错误,而Apache的错误日志是记录一些服务器的错误信息,比方某个PHP表达式忘记写分号,这个解析错误是记录PHP的错误日志里的,Apache的日志记录不到这些。
apache – 错误日志中同一行上的几条error_log()消息
我有这个PHP代码:
error_log('my message 1');
....
error_log('my message 2');
...
error_log('my message 3');
这会在apache error_log中生成一行包含所有消息:
[Wed Nov 13 17:24:55.880399 2013] [proxy_fcgi:error] [pid xx] [client xxx] AH01071: Got error 'PHP message: my message 1\n'PHP message: my message 2\n'PHP message: my message 3
我的配置:
Apache 2.4
PHP : 5.4
PHP-FPM with proxypassmatch directive.
我的问题:为什么消息在同一行,以及如何为每条消息设置一行?
谢谢你的回答.
编辑
每条消息一行应如下所示:
[Wed Nov 13 17:24:55.880399 2013] [proxy_fcgi:error] [pid xx] [client xxx] AH01071: Got error 'PHP message: my message 1'
[Wed Nov 13 17:24:55.880399 2013] [proxy_fcgi:error] [pid xx] [client xxx] AH01071: Got error 'PHP message: my message 2'
[Wed Nov 13 17:24:55.880399 2013] [proxy_fcgi:error] [pid xx] [client xxx] AH01071: Got error 'PHP message: my message 3'
解决方法:
error_log("error message \r\n");
PHP忽略单引号内的特殊ASCII字符(它将其呈现为单独的字符),您需要使用双引号.
此外:
您应该打开PHP.ini文件,即/ etc / PHP5 / apache2 /文件夹中的文件,然后输入error_log指令指向文件.
Apache必须具有足够的权限才能写入此文件.
所以
chown www-data:www-data /var/www/somefile.log
应该这样做
如果它当前未定义,则日志将通过syslog,并且不允许新行.
附加编辑:
要渗透输出缓冲,您需要引发异常.
例:
try{
ob_start();
doSomething($userInput);
ob_end_flush();
}
catch(Exception $e){
error_log($e->getMessage());
}
function doSomething($data = null){
if($data === null){
throw new Exception("Data is required");
}
else{
//do something
}
}
cups error_log日志暴增
日志内容
File \"/usr/lib/cups/notifier/dbus\" has insecure permissions
解决(未验证适用范围)
sudo service cups stop
sudo rm /etc/cups/subscriptions.conf*
sudo rm -r /var/cache/cups
sudo service cups start
(如果不能停止cups,执行以下命令):
ps aux | grep cups
获取进程 id (pid) 并杀掉该进程:
kill -9 (获取的进程id)
dbms_errlog.create_error_log 记录 DML 错误日志
业务场景:
当一个 DML 运行的时候,如果遇到了错误,则这条语句会整个回滚,就好像没有执行过。不过对于一个大的 DML 而言,如果个别数据错误而导致整个语句的回滚,会浪费很多的资源和运行时间,从 10g 开始 Oracle 支持记录 DML 语句的错误,而允许语句自动继续执行。
DBMS_ERRLOG 提供了一个存储过程 CREATE_ERROR_LOG,这个存储过程创建一个错误日志表,当 DML 出错时,操作不会终止和回滚,而是将相关的错误写到错误日志表中。
CREATE_ERROR_LOG 不支持一些数据类型:LONG, CLOB,BLOB, BFILE, and ADT。
简单实例:
1. 创建 test2 表
2. 调用存储过程自动创建相应的错误日志表
begin
dbms_errlog.create_error_log(''TEST2'',''LOG_TEST2'');
end;
相应的错误日志表 LOG_TEST2 结构
3. 测试
执行两次一下 sql 语句
insert into test2 values(''1'',''zhangsan'') LOG ERRORS INTO LOG_TEST2 REJECT LIMIT UNLIMITED;
然后查看 test2 表和 Log_test2 表
4. 注意事项:
报错信息:
begin case declare exit for
goto if loop mod null pragma raise return select update while
with <an identifier> <a double-quoted delimited-identifier>
<a bind variable> << close current delete fetch lock insert
open rollback savepoint set sql execute commit forall merge
pipe
很可能是存储过程中可能出现全角的空格,这种错是不可见的,存储过程只接受半角的空格,这种错误属于比较难查的。比如 $ 符是识别不了的。
我们今天的关于nginx error_log 错误日志配置说明和nginx的错误日志的分享已经告一段落,感谢您的关注,如果您想了解更多关于apache ErrorLog配置的错误日志和PHP的错误日志有区别吗?、apache – 错误日志中同一行上的几条error_log()消息、cups error_log日志暴增、dbms_errlog.create_error_log 记录 DML 错误日志的相关信息,请在本站查询。
本文标签: