python中的日志,logger用法
python中自带logger模块,实现方法有两种,一般使用第二种,更灵活
方法一:
import logging # 通过logging.basicConfig完成
logging.basicConfig( level=logging.DEBUG, # 显示级别 filename='logger.log', # 放入的文件目录,如果没有会显示在屏幕上 filemode='w', # 采用模式,写入 format='%(asctime)s %(filename)s [%(lineno)d] %(message)s', # 显示时间格式, 文件名,行号, 错误信息
) logging.debug('debug message') logging.info('info message') logging.warning('warning message') logging.error('error message') logging.critical('critical message')
方法二:
# 通过logger来完成
import logging
def logger():
logger = logging.getLogger() fh = logging.FileHandler('test.log') # 可以向文件发送日志 ch = logging.StreamHandler() # 可以向屏幕发送日志 fm = logging.Formatter('%(asctime)s %(message)s') # 打印格式 fh.setFormatter(fm)
ch.setFormatter(fm) logger.addHandler(fh)
logger.addHandler(ch)
logger.setLevel('DEBUG') # 设置级别 # logger.info('info')
# logger.debug('debug')
# logger.warning('warning')
# logger.error('error')
# logger.critical('critical')
return logger logger = logger()
logger.info('info')
logger的踩坑
import logging logger = logging.getLogger() # 不写名字指的是根用户, 没有设置等级,默认warning
logger1 = logging.getLogger('mylogger') # 创建一个子用户
logger2 = logging.getLogger('mylogger') logger1.setLevel(logging.DEBUG)
logger2.setLevel(logging.INFO) fh = logging.FileHandler('test2.log') # 可以向文件发送日志
ch = logging.StreamHandler() # 可以向屏幕发送日志 logger.addHandler(ch)
logger.addHandler(fh) logger.debug('logger debug message')
logger.info('logger info message')
logger.warning('logger warning message')
logger.error('logger error message')
logger.critical('logger critical message') logger1.addHandler(fh)
logger1.addHandler(ch)
logger2.addHandler(fh)
logger2.addHandler(ch) logger1.debug('logger1 debug message')
logger1.info('logger1 info message')
logger1.warning('logger1 warning message')
logger1.error('logger1 error message')
logger1.critical('logger1 critical message') # logger2.debug('logger2 debug message')
# logger2.info('logger2 info message')
# logger2.warning('logger2 warning message')
# logger2.error('logger2 error message')
# logger2.critical('logger2 critical message') # logger1和logger2实际是一个对象 logger.debug('logger debug message')
logger.info('logger info message')
logger.warning('logger warning message')
logger.error('logger error message')
logger.critical('logger critical message') # logger1执行的时候,会查看父级有没有输出,如果有输出,logger1会再输出一遍,解决方法是不让父级输出
python中的日志,logger用法的更多相关文章
- python中logging日志基本用法,和进程安全问题
低配版 import logging logging.debug('debug message') # 调试模式 logging.info('info message') # 正常运转模式 loggi ...
- python中的日志操作和发送邮件
1.python中的日志操作 安装log模块:pip install nnlog 参数:my_log = nnlog.Logger('server_log.log',level='debug',bac ...
- Python中的日志处理
在日常项目中,总是需要记录下一些细小信息或者错误码.错误信息的,这个时候就需要进行日志的操作.python中用于日志创建.设置和记录等功能的模块,就是logging了,下面是对其基本使用方法的介绍: ...
- Python 中 logging 日志模块在多进程环境下的使用
因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,Python 中 logging 日志模块在多进程环境下的使用 使用 Pytho ...
- Python中 sys.argv[]的用法
Python中 sys.argv[]的用法 因为是看书自学的python,开始后不久就遇到了这个引入的模块函数,且一直在IDLE上编辑了后运行,试图从结果发现它的用途,然而结果一直都是没结果,也在网上 ...
- 31 Python中 sys.argv[]的用法简明解释(转)
Python中 sys.argv[]的用法简明解释 因为是看书自学的python,开始后不久就遇到了这个引入的模块函数,且一直在IDLE上编辑了后运行,试图从结果发现它的用途,然而结果一直都是没结果, ...
- Python中sorted()方法的用法
Python中sorted()方法的用法 2012-12-24 22:01:14| 分类: Python |字号 订阅 1.先说一下iterable,中文意思是迭代器. Python的帮助文档中对i ...
- Python中int()函数的用法浅析
int()是Python的一个内部函数 Python系统帮助里面是这么说的 >>> help(int) Help on class int in module __builti ...
- Python中 sys.argv的用法简明解释
Python中 sys.argv[]的用法简明解释 sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键,所以那些试图从代码来说明它作用的解释一直没看明白.因为我们从外部取得 ...
随机推荐
- POCO Log库
http://pocoproject.org/index.html 有个想法,把这个所谓的跨平台log库阉割成只支持win的,然后使代码尽量简化,高效,以后有时间就开始研究,哈哈.
- android下使用tcpdump抓包
tcpdump是linux下的抓包工具,在android中没有,需要下载对应的工具. 下载地址:https://www.androidtcpdump.com/android-tcpdump/downl ...
- Nginx 状态信息功能配置
Nginx 状态信息功能介绍 Nginx 有一个 ngx_http_stub_status_module 模块,主要功能是记录 Nginx 的基本访问状态信息,让使用者了解 Nginx 的工作状态 要 ...
- Android Studio配置文件路径修改
用Android Studio进行Android开发已经成为趋势了,好的工具要用得称手也少不了好的调教,在Windows下更是如此.这里对Android Studio的相关配置文件的路径修改做下小结. ...
- 译:6.RabbitMQ Java Client 之 Remote procedure call (RPC,远程过程调用)
在 译:2. RabbitMQ 之Work Queues (工作队列) 我们学习了如何使用工作队列在多个工作人员之间分配耗时的任务. 但是如果我们需要在远程计算机上运行一个函数并等待结果呢?嗯,这 ...
- Lua 5.1 5.3 参考手册
Lua 5.1 参考手册: https://www.codingnow.com/2000/download/lua_manual.html Lua 5.3 参考手册: http://cloudwu.g ...
- graph radar 界面开发笔记
首先需要了解odoo图表视图的实现是采用了前端nvd3框架,nvd3是一个以复用为目的,基于d3框架的前端框架,官方地址:nvd3.org.从官网可见,目前nvd3可以用来画的图表并不包含雷达图. 第 ...
- Amazon
刚接到Recruiter电话,说恭喜,feedback都非常好. 心里大石落地,FLAG / UAT终于完成一家. 接下来就要加倍努力冲刺其他公司了. Mark: (入职以后一定要去地里补发一波面经, ...
- Ubuntu下在Apache中运行Keystone
最近一次从Github上更新Keystone的代码后,发现原来bin/keystone-all和bin/keystone-manage都不见了,取而代之的是keystone/cmd/目录下的all.p ...
- ASP.NET MVC 4 (七) 模板帮助函数
和普通HTML帮助函数不同,模板帮助函数不需要指定所用的HTML类型,MVC会推断选择合适的HTML元素,这让我们有更多的灵活性. 使用模板帮助函数 我们使用<ASP.NET MVC 4 (六) ...