发现python里面扩展了日志打印功能。感觉比java自带的还好,和log4j很类似。
下面总结下其用法。先说一种不用配置文件的:
<log.py>
<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的含义。
下面总结下其用法。先说一种不用配置文件的:
<log.py>
1
#
-*- coding: gb2312 -*-
2
import
logging
3
4
logging.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
10
console
=
logging.StreamHandler()
11
console.setLevel(logging.INFO)
12
formatter
=
logging.Formatter(
'
%(name)-12s: %(levelname)-8s %(message)s
'
)
13
console.setFormatter(formatter)
14
logging.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
25
def
getLogging(name):
26
return
logging.getLogger(name)

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

<test.py>






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



































<test2.py>


















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