python 日志简单使用

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


<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的含义。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值