文档章节

python中logging模块的使用

klaus丶
 klaus丶
发布于 2016/07/11 18:05
字数 163
阅读 28
收藏 4
#coding=utf8
import logging, os, sys, time
from logging import Logger
from logging.handlers import TimedRotatingFileHandler

def script_path():
    path = os.path.realpath(sys.argv[0])
    if os.path.isfile(path):
     path = os.path.dirname(path)
    return os.path.abspath(path)

def init_logger(logger_name):
    if logger_name not in Logger.manager.loggerDict:
        logger = logging.getLogger(logger_name)
        logger.setLevel(logging.DEBUG)
        # handler all
        log_path = os.path.join(script_path(),'logs')
        if not os.path.exists(log_path):
            os.makedirs(log_path)
        log_file = os.path.join(log_path,'all.log')
        handler = TimedRotatingFileHandler(log_file, when='midnight',backupCount=7)
        datefmt = '%Y-%m-%d %H:%M:%S'
        format_str = '[%(asctime)s]: %(name)s %(levelname)s %(lineno)s %(message)s'
        formatter = logging.Formatter(format_str, datefmt)
        handler.setFormatter(formatter)
        handler.setLevel(logging.INFO)
        logger.addHandler(handler)
        # handler error
        logerr_file = os.path.join(log_path,'error.log')
        handler = TimedRotatingFileHandler(logerr_file, when='midnight',backupCount=7)
        datefmt = '%Y-%m-%d %H:%M:%S'
        format_str = '[%(asctime)s]: %(name)s %(levelname)s %(lineno)s %(message)s'
        formatter = logging.Formatter(format_str, datefmt)
        handler.setFormatter(formatter)
        handler.setLevel(logging.ERROR)
        logger.addHandler(handler)


    logger = logging.getLogger(logger_name)
    return logger

logger = init_logger('cash')

if __name__ == '__main__':
    logger = init_logger('cash')
    logger.error('test-error')
    logger.info('test-info')
    logger.warn('test-warn')

 

© 著作权归作者所有

共有 人打赏支持
klaus丶
粉丝 0
博文 47
码字总数 10347
作品 0
海淀
程序员
使用Logging Handler自动上传Python程序日志到日志服务

想要日志上云,又不想修改程序代码? 或者不希望进行相对复杂的客户端部署?那么您需要使用Logging Handler,现在Python程序也支持了! 概述 使用Python SDK提供的Log Handler可以实现每一条P...

成喆
04/13
0
0
python 日志模块 logging 详解

Java 中最通用的日志模块莫过于 Log4j 了,在 python 中,也自带了 logging 模块,该模块的用法其实和 Log4j 类似。 Python 使用logging模块记录日志涉及四个主要类,使用官方文档中的概括最...

大数据之路
2013/05/01
0
6
python学习——基础(八)

python 内置了一套try...except...finally...的错误处理机制; try: except ZeroDivisionError, e: finally: 结果:tryexcept: integer division or modulo by zerofinally finally语句块是一......

随性_
2015/10/26
0
0
【资料整理】Python - 简单的epoll server代码解读

作为 Python 的初学者,学习别人的代码也是必要过程,本文主要是针对 《Python中使用epoll开发服务端程序》中的代码,进行源码注释说明。从代码中至少可以学习到如下三点: logging 模块的使...

摩云飞
2013/07/26
0
0
够用的 Python 写日志的知识——标准日志模块logging简介

前一段工作的时候用到了python写后台系统,需要把一些系统的行为记录下来。本着不要去重复发明轮子的精神,就去搜索了一下python的系统库本身是否有写日志的模块。果然有。python语言作为一门...

costaxu
2012/09/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

12-利用思维导图梳理JavaSE-

12-利用思维导图梳理JavaSE- 主要内容 1.线程概念 2.线程开发 3.线程的状态 4.线程的同步和死锁 5.Java5.0并发库类 QQ/知识星球/个人WeChat/公众号二维码 本文为原创文章,如果对你有一点点的...

飞鱼说编程
12分钟前
0
0
JAVA集合之ArrayList

一、前言 Java 集合类提供了一套设计良好的支持对一组对象进行操作的接口和类,JAVA常用的集合接口有4类,分别是: Collection:代表一组对象,每一个对象都是它的子元素 Set:不包含重复元素...

木木匠
33分钟前
1
0
转:XMLHttpRequest2 新技巧

”XMLHttpRequest 的异步调用网上找的例子运行没问题,但稍微改了一点点就报错”InvalidStateError: XMLHttpRequest has an invalid context“。断断续续 搞了3天终于通了,可以接收二进制文...

SamXIAO
52分钟前
2
0
=====D服务器定时任务=====

Linux定时任务 crontab linux系统是有cron这个系统服务来控制的,Liunx系统上包含很多的计划性工作,使用者自己可以设置计划任务,所以linux系统提供了使用者控制计划任务的命令 crontab的启...

覃光林
今天
1
0
xilinx资源

本系列教学视频由赛灵思高级战略应用工程师带领你:从零开始,一步步深入 掌握 HLS 以及 UltraFAST 设计方法,帮助您成为系统设计和算法加速的大拿! http://www.eetrend.com/topics/2018-0...

whoisliang
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部