发现python里面扩展了日志打印功能。感觉比java自带的还好,和log4j很类似。
下面总结下其用法。先说一种不用配置文件的:
<log.py>

1#-*-coding:gb2312-*-
2importlogging
3
4logging.basicConfig(level=logging.INFO,
5format='%(asctime)s%(name)-12s%(levelname)-8s%(message)s',
6datefmt='%m-%d%H:%M',
7filename='./AutoUpdate.log',
8filemode='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
25defgetLogging(name):
26returnlogging.getLogger(name)


<test.py>

importlog

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>

importlogging
importlogging.config

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

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

#"application"code
logger.debug("debugmessage")
logger.info(
"infomessage")
logger.warn(
"warnmessage")
logger.error(
"errormessage")
logger.critical(
"criticalmessage")

logHello
=logging.getLogger("hello")
logHello.info(
"Helloworld!")


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

更多相关文章

  1. Unobtrusive Javascript有三层含义

随机推荐

  1. XML编程-DOM4J
  2. XML简明教程(7)
  3. XML编程-SAX
  4. XML编程-DOM
  5. Jibx 处理XML
  6. XML简明教程(6)
  7. DTD详解
  8. XML简明教程(5)
  9. XML简明教程(4)
  10. XML入门