我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python日志

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python日志

log4py.py日志重构类
import datetime  
import sys  
import traceback  
import codecs  
import types  
import logging
import os
import time 
#log编码全部按utf8处理  
loglevels = {'stdout':['info','debug','warn','error','fatal'],  
    'file':['info','debug','warn','error','fatal']  
    }  
#print os.getcwd()+'/logs/logs.txt' 
logfile = os.getcwd()+'/logs/logs.'+time.strftime('%Y-%m-%d',time.localtime(time.time()))+'.txt'  
class log4py():  
    def __init__(self,modulename="gloabal"):  
        self.filename = logfile  
        #self.flag = set(loglevel['stdout']+loglevel['file'])  
        self.loglevel = loglevels  
        self.modulename = modulename  
        self.fcname = None  
    class function():  
        def __init__(self,fcname,parent):  
            parent.debug('enter ',fcname)  
            self.fcname = fcname  
            self.parent = parent  
        def __del__(self):  
            self.parent.debug('exit ',self.fcname)  
    def dbgfc(self,fcname):  
        '''''set debug function name'''  
        f = None  
        if 'debug' in self.flag:  
            f = self.function(fcname,self)  
        return f  
    def _gettime(self):  
        return datetime.datetime.now().isoformat()  
    def outstd(self,*fmt):  
        s = self.fmtstr(*fmt)  
        print s  
    def outfile(self,*fmt):  
        s = self.fmtstr(*fmt)  
        #print 'before outfile '+s  
        if s:  
            #print 'outfile '+s  
            encoding = 'utf8'  
            out = open(logfile, 'a+')#, encoding  
            out.write(s)  
            out.write('\n')  
            out.close()  
    def fmtstr(self, *fmt):  
        str = ''  
        encoding = 'utf8'#缺省utf8编码  
        for i in fmt:  
            if not type(i) in [types.UnicodeType, types.StringTypes, types.StringType]:  
                s= repr(i)  
            else:  
                s = i  
            if type(s) == type(u''):  
                str += s.encode(encoding)  
            else:  
                str += s  
            str += '.'  
        #str += '/n'  
        #print 'fmtstr:'+str  
        return str  
    def debug(self,*fmt):  
        if 'debug' in self.loglevel['stdout']:  
            self.outstd(self._gettime(),'[DEBUG]',self.modulename,*fmt)  
        if 'debug' in self.loglevel['file']:  
            #print 'debug file ...'  
            self.outfile(self._gettime(),'[DEBUG]',self.modulename,*fmt)  
    def warn(self,*fmt):  
        if 'warn' in self.loglevel['stdout']:  
            self.outstd(self._gettime(),'[WARN]',self.modulename,*fmt)  
        if 'warn' in self.loglevel['file']:  
            self.outfile(self._gettime(),'[WARN]',self.modulename,*fmt)  
    def info(self,*fmt):  
        if 'info' in self.loglevel['stdout']:  
            self.outstd(self._gettime(),'[INFO]',self.modulename,*fmt)  
        if 'info' in self.loglevel['file']:  
            self.outfile(self._gettime(),'[INFO]',self.modulename,*fmt)  
    def error(self,*fmt):  
        #print '/033[0;30;41m',  
        if 'error' in self.loglevel['stdout']:  
            self.outstd(self._gettime(),'[ERROR]',self.modulename,*fmt)  
        if 'error' in self.loglevel['file']:  
            self.outfile(self._gettime(),'[ERROR]',self.modulename,*fmt)  
        #print '/033[0m'  
    def fatal(self,*fmt):  
        if 'fatal' in self.loglevel['stdout']:  
            self.outstd(self._gettime(),'[FATAL',self.modulename,*fmt)  
        if 'fatal' in self.loglevel['file']:  
            self.outfile(self._gettime(),'[FATAL',self.modulename,*fmt)  
#unit test  
if __name__ == '__main__':  
    log=log4py()  
    log.outstd('INFO','stdout','test')  
    log.outfile('INFO','stdout','test')  
    log.debug('debug information 调试')  
    log.error('errorrrrrrrrrrrrrrr')  
    log.debug('hello')


用法:

from log4py import log4py
log=log4py('所在的python文件')
log.debug("aaaaa")



免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python日志

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python日志

log4py.py日志重构类import datetime  import sys  import traceback  import codecs  import types  import loggingimport osimport 
2023-01-31

Python 日志(Log)

日志?日志,就是用来记录程序运行的时候都发生了什么事。事件按严重程度划分level事件内容:时间位置事件的严重程度--level内容用logging模块实现logging 模块日志级别(level):DEBUG < INFO < NOTIC
2023-01-30

python日志解析

Python字典的setdefault()方法setdefault(key[, default])If key is in the dictionary, return its value. If not, insert key with
2023-01-31

python 日志封装

日志功能描述:写python项目时,需要用到日志类,需求为:日志信息可配置,提供几种类型不同的配置,并且日志既可以写到文本也可以写到数据库中。 实现时日志类直接使用python的logging,配置信息写到配置文件logging_data.
2023-01-31

python读取日志

场景:周一到周五早上6点半检查日志中的关键字,并发送相应的成功或者失败短信用python27版本实现日志内容如下:[16-08-04 06:30:39] Init Outer: StkID:20205 Label:7110 Name:02ͨ
2023-01-31

python 日志记录

周海汉 /文http://blog.csdn.net/ablo_zhou2010.3.20 一、我写的log4py介绍 在写<汉字大全>时,自己实现了简单的log系统:#!/bin/env python#--*-- coding=utf8
2023-01-31

python日志级别

import logging logging.basicConfig(level=logging.DEBUG, format=’%(asctime)s %(filename)s[line:%(lineno)
2023-01-31

Python 日志模块logging

logging模块:logging是一个日志记录模块,可以记录我们日常的操作。logging日志文件写入默认是gbk编码格式的,所以在查看时需要使用gbk的解码方式打开。logging日志等级:CRITICAL(50) > ERROR(40
2023-01-30

python 学习日志(1)

信号槽,这与qt的机制一样,但是整个运行的过程少有差异,在多次实验以后总结如下:在设计好窗体后,要生成窗体代码和Ui代码,这两者是分开的,一般自动生成的Ui不用动它,而是再Generating Dialog Code在这里面修改对信号槽的处
2023-01-31

python分析nginx日志

利用python脚本分析nginx日志内容,默认统计ip、访问url、状态,可以通过修改脚本统计分析其他字段。一、脚本运行方式python count_log.py -f med.xxxx.com.access.log二、脚本内容#!/us
2023-01-31

【Python】Python日志无延迟实

我在用python生成日志时,发现无论怎么flush(),文件内容总是不能实时写入,导致程序意外中断时一无所获。以下是查到的解决方案(亲测可行):open 函数中有一个bufferin的参数,默认是-1,如果设置为0是,就是无缓冲模式。 但
2023-01-31

Python日志之Python控制流(顺

Python控制流:所有程序都是在IDLE中运行1.Python的三种控制流(1).什么是控制流    Python中程序代码执行是有序的,有的代码程序会从上倒下按顺序执行,有的程序会跳转着执行,有的程序代码会选择不同的分支去执行,有的程序
2023-01-31

python日志处理模块

1 日志级别日志级别level数值CRITICAL50ERROR40WARNING30 ,默认日志级别INFO20DEBUG10NOTSET0,表示不设置日志级别是指产生日志的严重程度设置一个级别后,严重程度低于次级别的日志消息将会被忽略数
2023-01-31

(转载)Python日志工具 Python plog

原文来自:https://www.oschina.net/p/plog前言plog 是一个 Python 应用的日志工具包,包括系统日志解析,日志文件到系统日志的转换,提供一个Web查询接口。
2023-06-02

python操作日志的封装

前言曾经转载过一篇关于python日志模块logging的详解 https://www.cnblogs.com/linuxchao/p/linuxchao-log.html, 虽然这篇文章是别人写的, 但是我就是靠着这篇文章入门的loggi
2023-01-31

Python 关于日志的分析

项目情况介绍:基于Python 3.6.6 ,实现对nginx访问的日志分析代码,实现了对日志中code的占比统计和浏览器类型和访问情况统计实现的代码段有:1.编写窗户函数,实现在一定的时间内对数据进行分析2.通过正则表达式对日志进行匹配,
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录