`
dreamstone
  • 浏览: 289044 次
  • 来自: ...
文章分类
社区版块
存档分类

python log

阅读更多
#!/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,实际项目可直接使用

    供实际项目开发直接使用的Python Log Demo,按照日志级别可自定义输出日志级别,并按照日志以及实际项目业务对日志文件进行分类管理,保证快速定位日志,提高查询项目问题的效率。另外定义了日志回滚及最大保存的...

    apache_Log_analysis.rar_python log_shell

    这个名为"apache_Log_analysis.rar_python log_shell"的压缩包包含了一个实例,演示了如何结合使用shell脚本和Python来处理Apache服务器的日志数据。下面我们将详细探讨这个主题。 首先,Apache服务器的日志文件...

    hcldirgit#studygit#8. Python log10函数1

    Python log10()函数描述log10() 方法返回以10为基数的 x 对数。语法以下是 log10() 方法的语法:注意: log10() 是不能直接

    Python编程工具和课件--PythonLog

    Python编程工具 + Python编程课件 简约界面 + 快速响应 + 树状图项目管理 编译编程 + 交互编程 + 语法高亮 + 智能提示 下载链接: https://www.jianguoyun.com/p/DaRAF0QQyIyvBxjUnKEB

    python提取log文件内容并画出图表

    之前在excel里面分析log数据,简直日了*了。 现在用python在处理日志数据. 主要涉及 matplotlib,open和循环的使用。 日志内容大致如下 2016-10-21 21:07:59,787 [7 MainWindowForm]INFO: update time 136.6314 ...

    基于python log取对数详解

    log()方法返回x的自然对数,对于x&gt;0。 语法 以下是log()方法的语法: ...以上这篇基于python log取对数详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。

    python改变日志(logging)存放位置的示例

    感觉还有更好的方法,是直接利用logging.config.fileConfig(log_config_file)方式读进来之后,通过修改handler方式来进行修改。 复制代码 代码如下:“””project trace system“””import sysimport ConfigParser...

    Python的log日志脚本.py

    里面包含终端日志和输出文件日志;

    基于Python log 的正确打开方式

    在当前给出的信息中,我们可以提取并详细说明以下关于Python log的知识点: 1. 日志的重要性:日志记录是软件开发中用于记录应用程序运行情况的重要工具,它可以帮助开发者监控程序运行状态,分析错误原因,跟踪...

    Python log模块logging记录打印用法解析

    这篇文章主要介绍了Python log模块logging记录打印用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 日志基础教程 日志是对软件执行时所发生事件的一种...

    python中Log封装,可直接使用

    在Python编程中,日志(Log)记录是追踪程序运行状态、排查问题和调试代码的重要工具。本封装的目的是为了简化日志管理,提供一种直接可用的日志处理方案。下面我们将详细探讨Python中的日志模块(`logging`),以及...

    用python脚本处理和分析svn log xml

    本代码实现了用python处理svn log数据(xml格式),把Log的数据转化为一个python的数据结构,方便作更进一步数据挖掘!

    Python-Loguru是一个让Python日志记录变得超级简单

    Python的Loguru库是为了解决传统Python日志模块(如`logging`)在使用时可能存在的一些复杂性和不便性而设计的。它提供了一个简洁、直观的API,使得日志记录变得极其简单,同时不失灵活性和功能强大。下面将详细介绍...

    解决python 读取 log日志的编码问题

    在Python编程中,处理日志文件是常见的任务之一,尤其是当日志文件是以特定编码(如GBK)存储时,可能会遇到编码问题。本篇文章将详细探讨如何解决Python在读取GBK编码的日志文件时遇到的问题。 首先,让我们理解...

    基于Python:高斯-拉普拉斯LoG边缘检测.py

    拉普拉斯算子是图像二阶空间导数的二维各向同性测度。拉普拉斯算子可以突出图像中强度发生快速变化的区域,因此常用在边缘检测任务当中。在进行Laplacian操作之前通常需要先用高斯平滑滤波器对图像进行平滑处理,以...

    解决nohup执行python程序log文件写入不及时的问题

    ### 解决nohup执行Python程序log文件写入不及时的问题 #### 一、问题背景与现象 在日常开发工作中,经常会遇到需要在Linux环境下使用`nohup`命令来后台执行Python脚本的情况。这样的操作可以让我们在关闭终端或者...

    Python编程工具和学习课件

    在"PythonLog"这个文件中,可能是记录了学习过程中的日志信息,包括代码试验、错误调试记录、学习心得等,这对于回顾和巩固学习成果非常有价值。持续记录和反思编程过程,有助于形成良好的编程习惯和问题解决策略。 ...

Global site tag (gtag.js) - Google Analytics