python日志输出—logging配置文件

来源:互联网 发布:交换机trunk端口配置 编辑:程序博客网 时间:2024/05/21 14:02

一、logging直接写在代码中

      >>>http://blog.csdn.net/naiveloafer/article/details/7630673

二、通过配置文件来配置输出

配置文件:

#Configuration for log output#Naiveloafer#2012-06-04[loggers]keys=root,xzs[handlers]keys=consoleHandler,fileHandler,rotatingFileHandler[formatters]keys=simpleFmt[logger_root]level=DEBUG#handlers=consoleHandler#handlers=fileHandlerhandlers=rotatingFileHandler[logger_xzs]level=DEBUGhandlers=rotatingFileHandlerqualname=xzspropagate=0[handler_consoleHandler]class=StreamHandlerlevel=DEBUGformatter=simpleFmtargs=(sys.stdout,)[handler_fileHandler]class=FileHandlerlevel=DEBUGformatter=simpleFmtargs=("../log/p2pplayer.log", "a")[handler_rotatingFileHandler]class=handlers.RotatingFileHandlerlevel=DEBUGformatter=simpleFmtargs=("../log/p2pplayer.log", "a", 20*1024*1024, 10)[formatter_simpleFmt]format=%(asctime)s - %(name)s - %(levelname)s - %(message)s - [%(filename)s:%(lineno)s]datefmt=

测试代码:

def log_test02():    import logging    import logging.config    CONF_LOG = "../conf/p2pplayer_logging.conf"    logging.config.fileConfig(CONF_LOG);    # 采用配置文件    logger = logging.getLogger("xzs")    logger.debug("Hello xzs")        logger = logging.getLogger()    logger.info("Hello root")    if __name__ == "__main__":    log_test02()

输出:

2012-06-04 15:28:05,751 - xzs - DEBUG - Hello xzs - [xlog.py:29]2012-06-04 15:28:05,751 - root - INFO - Hello root - [xlog.py:32]

具体就不详细说明了,总之是能够运行的,这个文件配置搞了我两天时间。

特别是class=XXXX要注意!!!


 关于formatter的配置,采用的是%(<dict key>)s的形式,就是字典的关键字替换。提供的关键字包括:

FormatDescription%(name)sName of the logger (logging channel).%(levelno)sNumeric logging level for the message (DEBUGINFOWARNINGERRORCRITICAL).%(levelname)sText logging level for the message ('DEBUG''INFO''WARNING''ERROR''CRITICAL').%(pathname)sFull pathname of the source file where the logging call was issued (if available).%(filename)sFilename portion of pathname.%(module)sModule (name portion of filename).%(funcName)sName of function containing the logging call.%(lineno)dSource line number where the logging call was issued (if available).%(created)fTime when the LogRecord was created (as returned by time.time()).%(relativeCreated)dTime in milliseconds when the LogRecord was created, relative to the time the logging module was loaded.%(asctime)sHuman-readable time when the LogRecord was created. By default this is of the form “2003-07-08 16:49:45,896” (the numbers after the comma are millisecond portion of the time).%(msecs)dMillisecond portion of the time when the LogRecord was created.%(thread)dThread ID (if available).%(threadName)sThread name (if available).%(process)dProcess ID (if available).%(message)sThe logged message, computed as msg % args.
原创粉丝点击