设为首页 收藏本站
查看: 852|回复: 0

[经验分享] python 日志打印

[复制链接]

尚未签到

发表于 2017-4-24 08:33:41 | 显示全部楼层 |阅读模式
发现python里面扩展了日志打印功能。感觉比java自带的还好,和log4j很类似。
下面总结下其用法。先说一种不用配置文件的:
<log.py>

 1 DSC0000.gif # -*- coding: gb2312 -*-
 2import logging
 3
 4logging.basicConfig(level=logging.INFO,
 5                    format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
 6                    datefmt='%m-%d %H:%M',
 7                    filename='./AutoUpdate.log',
 8                    filemode='w')
 9
10console = logging.StreamHandler()
11console.setLevel(logging.INFO)
12formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
13console.setFormatter(formatter)
14logging.getLogger('').addHandler(console)
15
16
17#
18# console = logging.StreamHandler()
19# console = setLevel(logging.DEBUG)
20# formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
21# console.setFormatter(formatter)
22# logging.getLogger('').addHandler(console)
23
24
25def getLogging(name):
26    return logging.getLogger(name)

<test.py>
import log

testlog 
= log.getLogging('test')
testlog.error( 
"~~~~~~~~~~~~~~test1.")
testlog.info( 
"~~~~~~~~~~~~~~test2." )
testlog.exception( 
"~~~~~~~~~~~~~~~~~~~~~~~~~test3.")

用过log4j的人不会陌生这种用法。如果你对log4j有疑惑,或者想了解请在本人blog内查找关于log4j的文章。有详细介绍。这里不再赘述。

第二种使用配置文件的:
# logging.conf

[loggers]
keys
=root,example

[handlers]
keys
=consoleHandler,rotateFileHandler

[formatters]
keys
=simpleFormatter

[formatter_simpleFormatter]
format
=[%(asctime)s](%(levelname)s)%(name)s : %(message)s

[logger_root]
level
=DEBUG
handlers
=consoleHandler,rotateFileHandler

[logger_example]
level
=DEBUG
handlers
=consoleHandler,rotateFileHandler
qualname
=example
propagate
=0

[handler_consoleHandler]
class=StreamHandler
level
=DEBUG
formatter
=simpleFormatter
args
=(sys.stdout,)

[handler_rotateFileHandler]
class=handlers.RotatingFileHandler
level
=DEBUG
formatter
=simpleFormatter
args
=('test.log''a'100009)

<test2.py>
import logging
import logging.config

logging.config.fileConfig(
"logger.conf")

#create logger
logger = logging.getLogger("example")

#"application" code
logger.debug("debug message")
logger.info(
"info message")
logger.warn(
"warn message")
logger.error(
"error message")
logger.critical(
"critical message")

logHello 
= logging.getLogger("hello")
logHello.info(
"Hello world!")


其中值得注意的是args的含义。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-368391-1-1.html 上篇帖子: Python的循环 下篇帖子: python 日期函数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表