<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    發現python里面擴展了日志打印功能。感覺比java自帶的還好,和log4j很類似。
    下面總結下其用法。先說一種不用配置文件的:
    <log.py>

    ?1#?-*-?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',?10000,?9)

    <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的含義。
    posted on 2008-04-10 22:25 -274°C 閱讀(3322) 評論(0)  編輯  收藏 所屬分類: python

    常用鏈接

    留言簿(21)

    隨筆分類(265)

    隨筆檔案(242)

    相冊

    JAVA網站

    關注的Blog

    搜索

    •  

    積分與排名

    • 積分 - 914354
    • 排名 - 40

    最新評論

    主站蜘蛛池模板: 亚洲精品亚洲人成人网| 久艹视频在线免费观看| 亚洲暴爽av人人爽日日碰| 日本永久免费a∨在线视频| 国产啪精品视频网站免费尤物 | 在线看片人成视频免费无遮挡| 不卡视频免费在线观看| 免费A级毛片无码专区| 在线看片无码永久免费aⅴ| 精品熟女少妇AV免费观看| 亚洲人成人网站在线观看| 国产大片51精品免费观看| 日韩激情淫片免费看| 亚洲精品无码Av人在线观看国产| 亚洲av专区无码观看精品天堂| 亚洲a级片在线观看| 99久久婷婷免费国产综合精品| 日韩成人免费视频| 亚洲黄色免费网址| 三年片免费观看大全国语| 亚洲热线99精品视频| 一级特黄aaa大片免费看| 女人被男人躁的女爽免费视频| 亚洲AV成人精品网站在线播放| 亚洲一区二区影院| 二个人看的www免费视频| 国产精品冒白浆免费视频| 亚洲午夜无码久久久久小说| 亚洲精品国产精品国自产观看| 免费h黄肉动漫在线观看| 在线播放亚洲第一字幕| 亚洲精品乱码久久久久久蜜桃图片| 久久青青草原国产精品免费| 亚洲人成网站色在线入口| 亚洲国产日韩在线一区| 日韩中文字幕免费视频| 亚洲综合小说另类图片动图| 亚洲视频在线免费| 少妇亚洲免费精品| 又粗又硬又大又爽免费视频播放| 亚洲综合久久一本伊伊区|