#!/usr/bin/python
"""Publog.py
CLASSES Logger
if you want to use this logger .you must set two value
1:set the output level
2:set the outs--output files's path /default is console
"""
__version__= '$Version 1.0$'
import sys
import os
import time
#log level define begin
DEBUG=0
INFO=1
WARN=2
ERROR=3
FATAL=4
NOLOG=5
#log level define end
outs=['con']
level=NOLOG
#min is 10k
maxsize=10000
class Logger:
def __init__(self,head='common log'):
self.head=head
self.output=outs
if maxsize <10000:
self.maxsize=10000
else:
self.maxsize=maxsize
if level >5 | level<0:
self.level=NOLOG
else:
self.level=level
#debug
def debug(self,str=''):
if DEBUG>=self.level:
self.writelog(str)
else:
return
#info
def info(self,str=''):
if INFO>=self.level:
self.writelog(str)
else:
return
#warn
def warn(self,str=''):
if WARN>=self.level:
self.writelog(str)
else:
return
#error
def error(self,str=''):
if ERROR>=self.level:
self.writelog(str)
else:
return
#fatal
def fatal(self,str=''):
if FATAL>=self.level:
self.writelog(str)
else:
return
#output
def writelog(self,str=''):
prtstr=self.head+" : "+str+" ("+time.ctime() +")"
for path in self.output:
if path=='con':
print prtstr
else:
try:
if
<script><!----></script>
os.path.exists(path):
if os.stat(path)[6] >self.maxsize:
newname=self.getname(path)
if os.path.exists(newname):
os.remove(newname)
os.rename(path,newname)
logfile=open(path,"a+") <wbr>
try:
logfile.write(prtstr+os.linesep)
logfile.close()
finally:
if not logfile.closed:
logfile.close()
except IOError:
pass
def getname(self,path):
dirname,filename=os.path.split(path)
# filename=str(time.localtime()[0:3])+filename
year,month,date,hour,min=time.localtime()[0:5]
filename=str(year)+"-"+str<wbr>(month)+"-"+str(date)+"-"+str<wbr>(hour)+"-"+str(min)+"-"<wbr>+filename
newname=os.path.join(dirname,filename)
return newname
def test():
global level,outs
level=INFO
outs=['con','D:/edi/log.txt']
maxsize=20000
logger=Logger("==test head")
logger.debug("debug")
logger.info("info")
logger.error("error")
if __name__== '__main__':
test()
</wbr></wbr></wbr></wbr>
分享到:
相关推荐
供实际项目开发直接使用的Python Log Demo,按照日志级别可自定义输出日志级别,并按照日志以及实际项目业务对日志文件进行分类管理,保证快速定位日志,提高查询项目问题的效率。另外定义了日志回滚及最大保存的...
这个名为"apache_Log_analysis.rar_python log_shell"的压缩包包含了一个实例,演示了如何结合使用shell脚本和Python来处理Apache服务器的日志数据。下面我们将详细探讨这个主题。 首先,Apache服务器的日志文件...
Python log10()函数描述log10() 方法返回以10为基数的 x 对数。语法以下是 log10() 方法的语法:注意: log10() 是不能直接
Python编程工具 + Python编程课件 简约界面 + 快速响应 + 树状图项目管理 编译编程 + 交互编程 + 语法高亮 + 智能提示 下载链接: https://www.jianguoyun.com/p/DaRAF0QQyIyvBxjUnKEB
之前在excel里面分析log数据,简直日了*了。 现在用python在处理日志数据. 主要涉及 matplotlib,open和循环的使用。 日志内容大致如下 2016-10-21 21:07:59,787 [7 MainWindowForm]INFO: update time 136.6314 ...
log()方法返回x的自然对数,对于x>0。 语法 以下是log()方法的语法: ...以上这篇基于python log取对数详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。
感觉还有更好的方法,是直接利用logging.config.fileConfig(log_config_file)方式读进来之后,通过修改handler方式来进行修改。 复制代码 代码如下:“””project trace system“””import sysimport ConfigParser...
里面包含终端日志和输出文件日志;
在当前给出的信息中,我们可以提取并详细说明以下关于Python log的知识点: 1. 日志的重要性:日志记录是软件开发中用于记录应用程序运行情况的重要工具,它可以帮助开发者监控程序运行状态,分析错误原因,跟踪...
这篇文章主要介绍了Python log模块logging记录打印用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 日志基础教程 日志是对软件执行时所发生事件的一种...
在Python编程中,日志(Log)记录是追踪程序运行状态、排查问题和调试代码的重要工具。本封装的目的是为了简化日志管理,提供一种直接可用的日志处理方案。下面我们将详细探讨Python中的日志模块(`logging`),以及...
本代码实现了用python处理svn log数据(xml格式),把Log的数据转化为一个python的数据结构,方便作更进一步数据挖掘!
Python的Loguru库是为了解决传统Python日志模块(如`logging`)在使用时可能存在的一些复杂性和不便性而设计的。它提供了一个简洁、直观的API,使得日志记录变得极其简单,同时不失灵活性和功能强大。下面将详细介绍...
在Python编程中,处理日志文件是常见的任务之一,尤其是当日志文件是以特定编码(如GBK)存储时,可能会遇到编码问题。本篇文章将详细探讨如何解决Python在读取GBK编码的日志文件时遇到的问题。 首先,让我们理解...
拉普拉斯算子是图像二阶空间导数的二维各向同性测度。拉普拉斯算子可以突出图像中强度发生快速变化的区域,因此常用在边缘检测任务当中。在进行Laplacian操作之前通常需要先用高斯平滑滤波器对图像进行平滑处理,以...
### 解决nohup执行Python程序log文件写入不及时的问题 #### 一、问题背景与现象 在日常开发工作中,经常会遇到需要在Linux环境下使用`nohup`命令来后台执行Python脚本的情况。这样的操作可以让我们在关闭终端或者...
在"PythonLog"这个文件中,可能是记录了学习过程中的日志信息,包括代码试验、错误调试记录、学习心得等,这对于回顾和巩固学习成果非常有价值。持续记录和反思编程过程,有助于形成良好的编程习惯和问题解决策略。 ...