Apache错误日志时时查看
做项目的时候,有时候会需要查看一下apache的错误日志,然后就需要很繁琐的打开那个目录下面,看信息,只有当错误的时候我才会去打开那个文件。
但是最近我发现在开发的时候,自己忽略掉了很多错误,虽然不会导致出错,但是搞不好哪天就会爆发。
我不高兴每次打开那个文件,然后自己又要手动的刷新,太麻烦,所以就自己做了个网页版的,能够时时查看错误日志。
这个小工具比较简陋,就是简单的将文件内容打印到页面中,并在有新错误的时候做个title的闪动小提示。
aaarticlea/png;base64,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" alt="" />当有新消息的时候标签就变成 aaarticlea/png;base64,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" alt="" />
aaarticlea/png;base64,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" alt="" />
aaarticlea/png;base64,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" alt="" />
用到了三个文件,jquery就不解释了,一个脚本类库。两个php文件的编码格式我改成了ansi格式,因为一开始调试的时候,从error.txt读取出来的中文会乱码。
content.php
这个文件就是用来读取error.txt的信息的
$path = 'C:\Program Files (x86)\Apache Software Foundation\Apache2.2\logs\error.log';//自定义的路径
$str = file_get_contents($path);
$str = str_replace("\r\n",'<p style="padding:3px 0;margin:0"></p>', $str);
$str = str_replace('<script>', '<script>', $str);
$str = str_replace('</script>', '</script>', $str);
echo ($str);
1、只要将path改成自己的绝对路径就可以了,还有就是将换行改成了一个p标签样式,这里也可以自定义
2、做了点粗糙的<script>过滤,如果不这么过滤,返回到index.php页面将会执行脚本代码
index.php
这个文件就是在展示错误信息的页面
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="gbk"/>
<title>apache 错误日志</title>
<script type="text/javascript" src="jquery.js"></script>
</head>
<body>
<div id="error"></div>
<div id="error_bak" style="display:none"></div>
<div id="error_data" style="display:none"></div> <script type="text/javascript">
//脚本逻辑
</script>
</body>
</html>
1、页面的格式是gbk
2、有两三个div用来保存读取到的错误信息,
3、error是用来展示的,后面会做些标签添加
4、error_bak是用来备份ajax获取出来的原始信息
5、error_data是将ajax返回的数据与error_bak备份的数据做对比,判断日志是否有改变
6、脚本逻辑如下所示
<script type="text/javascript">
var move;//定时函数的ID
var titleName = document.title;//初始化时的页面标题
var first = true;//是否是第一次读取错误日志
/**
* @method private
* @name _setTitle
* @description 定时显示新错误信息提示
*/
function _setTitle() {
var title = document.title;
if(title == titleName){
document.title = "【有新错误】";
}else{
document.title = titleName;
}
move = setTimeout('_setTitle()',1000);
}
/**
* @method private
* @name _filter
* @description 将html标签过滤掉
* @param str [string] "待过滤的字符串"
*/
function _filter(str) {
return str.replace(/<[^>]+>/g,"");
}
/**
* @method private
* @name _get
* @description 异步获取错误日志
*/
function _get() {
var old_bak = $('#error_bak').html();//由于要将新错误标红,这里就要做一个错误的备份,下面的判断都用备份的来做
$.get('content.php', {}, function(data) {
$('#error_data').html(data);
var current = $('#error_data').html();//添加到html代码中,再读取代码做比较,因为添加到html后会做转义,与ajax返回的数据就会有出入
if(_filter(current) != _filter(old_bak)) {//与备份的做比较
$('#error').html(data);
$('#error_bak').html(data);
if(!first) {
var red = data.replace(old_bak, '');
$('#error').html(old_bak + '<div style="color:red">'+red+'</div>');//将新错误标红
_setTitle();
}
}
// console.log(_filter(data));
// console.log(_filter(old_bak));
first = false;
});
}
$(document).ready(function() {
//初始化读取错误日志
_get();
//定时获取错误日志
setInterval(function() {
_get();
}, 4000);
//在页面上随便点击一下,取消标题定时显示
$(document).click(function() {
document.title = titleName;
clearTimeout(move);
});
});
</script>
1、用jquery的get来读取错误日志
2、有新错误日志的时候,做个小提示
3、有新的日志,才会将页面内容刷新一下
4、给新的几行错误日志加个颜色区分
5、绑定一个事件取消新错误提示
2014-09-22错误修正:
1、从content.php中获取到的data信息在做replace的时候,并没有替换成功,在把返回的数据添加到html中的时候,html会做一些编码,导致替换不成功。
function _get() {
//..
$.get('content.php', {}, function(data) {
//...
if(_filter(current) != _filter(old_bak)) {//与备份的做比较
//...
if(!first) {
var red = $('#error').html().replace(old_bak, '');
//...
}
}
//..
});
}
刚写的一个比较粗糙的版本,还有很多问题,大家可以根据自己的情况再做修改。
demo下载:
http://download.csdn.net/download/loneleaf1/7916991
2014-09-22错误修正demo下载:
http://download.csdn.net/download/loneleaf1/7958451
Apache错误日志时时查看的更多相关文章
- centos7下,解决Apache错误日志文件过大问题
1,日志文件太大问题 第一步:停止Apache服务的所有进程,删除 /var/log/httpd目录下的 error.log.access.log文件 第二步:打开 /etc/httpd/conf ...
- 限制apache错误日志大小
①配置错误日志 在http.conf配置: ErrorLog "| /opt/lampp/bin/rotatelogs /opt/lampp/logs/%Y_%m_%d_error_log ...
- Apache 错误日志
配置文件中:httpd.conf ErrorLog "/usr/local/var/log/apache2/error_log1" CustomLog "/usr/loc ...
- 在Linux系统上查看Apache服务器的错误日志
错误日志和访问日志文件为系统管理员提供了有用的信息,比如,为 Web 服务器排障,保护系统不受各种各样的恶意活动侵犯,或者只是进行各种各样的分析以监控 HTTP 服务器.根据你 Web 服务器配置的不 ...
- apache2.2服务无法启动 发生服务特定错误:1 的解决办法 (windows服务错误 日志查看方法)
转 https://blog.csdn.net/liuensong/article/details/6738041 查错过程: 1.查看apache错误日志:目录下的apache/logs/error ...
- 查看MS SQL SERVER 错误日志
查看目的: 错误日志的查看是确保过程已成功完成(例如,备份和恢复操作,批处理命令,或其他脚本和过程).这可以帮助检测任何当前或潜在的问题,包括自动恢复信息(尤其是如果SQL Server实例已停止并重 ...
- 解决Apache的错误日志巨大的问题以及关闭Apache web日志记录
调整错误日志的级别 这几天 apache错误日志巨大 莫名其妙的30G 而且 很多都是那种页面不存在的 网站太多了 死链接相应的也很多于是把错误警告调低了 因为写日志会给系统带来很大的损耗.关闭 ...
- SQL Server代理(5/12):理解SQL代理错误日志
SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 如我们在这个系列的前几篇文章所见,SQL ...
- [Apache]如何查看apache服务器的error log(错误日志)
在进行网页和服务器的测试时, 有时会提醒 500 Internal Server Error: The server encountered an internal error or misconfi ...
随机推荐
- 视频文件写入转换之图像处理-OpenCV应用学习笔记五
在<笔记二>中我们做了视频播放和控制的实现,仅仅算是完成了对视频文件的读取操作:今天我们来一起练习下对视频文件的写入操作:格式转换. 实现功能: 打开一个视频文件play.avi,读取文件 ...
- 统一SDK接入(U8SDK)——总体思路和架构
题记:很多做游戏开发的人,估计都或多或少地接过渠道SDK,什么UC,当乐,91,小米,360……据统计国内市场当前不下于100家渠道,还包括一些没有SDK的小渠道.每个渠道SDK接入的方法呢,多是大同 ...
- Java Spring IOC用法
Java Spring IOC用法 Spring IoC 在前两篇文章中,我们讲了java web环境搭建 和 java web项目搭建,现在看下spring ioc在java中的运用,开发工具为In ...
- C#实现 word、pdf、ppt 转为图片
office word文档.pdf文档.powerpoint幻灯片是非常常用的文档类型,在现实中经常有需求需要将它们转换成图片 -- 即将word.pdf.ppt文档的每一页转换成一张对应的图片,就像 ...
- 【读书笔记】Programming Entity Framework CodeFirst -- 初步认识
以下是书<Programming Entity Framework Code First>的学习整理,主要是一个整体梳理. 一.模型属性映射约定 1.通过 System.Component ...
- Hibernate的Annotation注解
当项目变得比较大的时候,如何还使用hbm.xml文件来配置Hibernate实体就会变得比较复杂.这里Hibernate提供了Annotation注解方式,使得Hibernate的映射文件变得很方便管 ...
- Unity多单位战斗寻路问题的一种解决办法
Unity多单位战斗寻路问题的一种解决办法 Unity提供了NavMesh 导航组件 NavMesh是在实践中通用性最好的一种导航方式,但是Unity的实现并没有完全提供一个开放自由的API. 主 ...
- http学习笔记(四)——HTTP报文
http报文是在http应用程序之间发送的数据块,这些数据块以一些文本形式的元信息. 请求报文从客户端流入服务器,向服务器请求数据,服务器响应请求,响应报文从服务器流出,回到客户端. 这就构成了一个事 ...
- Django集成百度富文本编辑器uEditor
UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码. 首先从ueEditor官网下载最新版本的包, ...
- 据说每个大牛、小牛都应该有自己的库——Event处理
今天抽时间写了一部分Event处理方面的函数愈发的觉得jQuery的优秀,自己前期的想法太粗糙,造成后面这些函数参数很多,操作很很不直观,看样子是要重构的节奏,还好小伙儿伴们安慰,架构都是改出来的.继 ...