免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2265 | 回复: 0
打印 上一主题 下一主题

写了一个监视某个目录下debug log的脚本, [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-11 17:11 |只看该作者 |倒序浏览
我应用于监视tomcat\logs目录下面所有log
def CheckLogs(path, interval=600, lock = None):
"""
path 字符串,所监视的目录 tomcat\logs
interval, 数字,多长时间检查一次
lock, threading.lock类型, 用于多线程时同一时间段仅允许单个线程访问文件
"""
    fileMap = {}
    tr = re.compile(r'([eE]xception)')
#找exception的正则表达式
    trFile = re.compile(r'(-0.log|catelina.err)$')
#想找什么文件名
    while 1:
        if lock:
            lock.acquire()
        dirList=os.listdir(path)
        for fname in dirList:
            if len(trFile.findall(fname)) == 0:
                   continue
            tf = open(path + fname, 'r')
            if fname in fileMap:
                tf.seek(fileMap[fname])
                ts = tf.read()
                tl = tr.findall(ts)
                if len(tl):
                    print '[LOG]find ' + str(len(tl)) + ' exception(s) in: ' + fname
                fileMap[fname] = tf.tell()
            else:
                ts = tf.read()
                tl = re.findall(tr, ts)
                if len(tl):
                    print '[LOG]find ' + str(len(tl)) + ' exception(s) in: ' + fname
                fileMap[fname] = tf.tell()
            tf.close()
        if lock:
            lock.release()
        time.sleep(interval)
我在windows平台下运行通过
希望能够对大家有用,如果有问题也请大家指出
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP