發現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

          搜索

          •  

          積分與排名

          • 積分 - 914107
          • 排名 - 40

          最新評論

          主站蜘蛛池模板: 紫金县| 平顺县| 达日县| 四川省| 大方县| 崇左市| 双辽市| 饶平县| 苏尼特左旗| 雷波县| 赞皇县| 涟源市| 万山特区| 历史| 调兵山市| 漳浦县| 德州市| 淄博市| 夏邑县| 辉县市| 赤峰市| 丰台区| 苗栗县| 崇文区| 凤庆县| 武鸣县| 东宁县| 石河子市| 荣昌县| 双城市| 南部县| 大余县| 哈巴河县| 峨眉山市| 竹山县| 凤冈县| 社会| 集贤县| 襄城县| 纳雍县| 湄潭县|