python日志logging
来源:互联网 发布:淘宝网开通借呗可靠吗 编辑:程序博客网 时间:2024/05/29 15:22
一、从一个使用场景开始
开发一个日志系统, 既要把日志输出到控制台, 还要写入日志文件
- import logging
- # 创建一个logger
- logger = logging.getLogger('mylogger')
- logger.setLevel(logging.DEBUG)
- # 创建一个handler,用于写入日志文件
- fh = logging.FileHandler('test.log')
- fh.setLevel(logging.DEBUG)
- # 再创建一个handler,用于输出到控制台
- ch = logging.StreamHandler()
- ch.setLevel(logging.DEBUG)
- # 定义handler的输出格式
- formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
- fh.setFormatter(formatter)
- ch.setFormatter(formatter)
- # 给logger添加handler
- logger.addHandler(fh)
- logger.addHandler(ch)
- # 记录一条日志
- logger.info('foorbar')
运行后, 在控制台和日志文件都有一条日志:
- 2011-08-31 19:18:29,816 - mylogger - INFO - foorbar
二、logging模块的API
结合上面的例子,我们说下几个最常使用的API
- logger.debug("foobar") # 不输出
- logger.info("foobar") # 输出
- logger.warning("foobar") # 输出
- logger.error("foobar") # 输出
- logger.critical("foobar") # 输出
- import logging
- logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.DEBUG)
- logging.debug('This message should appear on the console')
- import logging
- # 设置root logger
- r = logging.getLogger()
- ch = logging.StreamHandler()
- ch.setLevel(logging.DEBUG)
- formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
- ch.setFormatter(formatter)
- r.addHandler(ch)
- # 创建一个logger作为父亲
- p = logging.getLogger('foo')
- p.setLevel(logging.DEBUG)
- ch = logging.StreamHandler()
- ch.setLevel(logging.DEBUG)
- formatter = logging.Formatter('%(asctime)s - %(message)s')
- ch.setFormatter(formatter)
- p.addHandler(ch)
- # 创建一个孩子logger
- c = logging.getLogger('foo.bar')
- c.debug('foo')
- 2011-08-31 21:04:29,893 - foo
- 2011-08-31 21:04:29,893 - DEBUG - foo
亲以及root logger。最后输出两条日志。
Formatters
Formatter对象设置日志信息最后的规则、结构和内容,默认的时间格式为%Y-%m-%d %H:%M:%S,下面是Formatter常用的一些信息
%(name)s
Logger的名字
%(levelno)s
数字形式的日志级别
%(levelname)s
文本形式的日志级别
%(pathname)s
调用日志输出函数的模块的完整路径名,可能没有
%(filename)s
调用日志输出函数的模块的文件名
%(module)s
调用日志输出函数的模块名
%(funcName)s
调用日志输出函数的函数名
%(lineno)d
调用日志输出函数的语句所在的代码行
%(created)f
当前时间,用UNIX标准的表示时间的浮 点数表示
%(relativeCreated)d
输出日志信息时的,自Logger创建以 来的毫秒数
%(asctime)s
字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
%(thread)d
线程ID。可能没有
%(threadName)s
线程名。可能没有
%(process)d
进程ID。可能没有
%(message)s
用户输出的消息
0 0
- Python日志模块-logging
- python日志:logging
- python logging 日志记录
- Python日志模块logging
- python logging 日志
- Python 日志(logging)模块
- python日志logging
- Python:logging日志模块
- Python日志库logging
- python日志模块----logging
- python 日志模块 logging
- python(logging )日志模块
- Python 之 日志logging
- python logging日志模块
- Python 日志logging模块
- python logging日志模块
- python logging 日志配置
- python logging 日志配置
- 第二周项目三 两种排序算法的运行时间
- 上班第一天
- minicom 保存串口log
- Bootstrap轮播
- Mac SVN 命令 checkout
- python日志logging
- 深入理解为什么AsyncTask只能被执行一次
- 服务器性能分析几个点
- shell中括号的特殊用法
- RabbitMQ > CentOS上安装、配置RabbitMQ
- 顺序表的基本运算
- shell中的内建命令, 函数和外部命令
- Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
- NSTimer简单用法