分享

python日志输出—logging配置文件

 java_laq小馆 2014-05-19

python日志输出—logging配置文件

分类: python 1675人阅读 评论(0) 收藏 举报

一、logging直接写在代码中

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

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

配置文件:

  1. <span style="font-size:18px;">#Configuration for log output  
  2. #Naiveloafer  
  3. #2012-06-04  
  4.   
  5. [loggers]  
  6. keys=root,xzs  
  7.   
  8. [handlers]  
  9. keys=consoleHandler,fileHandler,rotatingFileHandler  
  10.   
  11. [formatters]  
  12. keys=simpleFmt  
  13.   
  14. [logger_root]  
  15. level=DEBUG  
  16. #handlers=consoleHandler  
  17. #handlers=fileHandler  
  18. handlers=rotatingFileHandler  
  19.   
  20. [logger_xzs]  
  21. level=DEBUG  
  22. handlers=rotatingFileHandler  
  23. qualname=xzs  
  24. propagate=0  
  25.   
  26. [handler_consoleHandler]  
  27. class=StreamHandler  
  28. level=DEBUG  
  29. formatter=simpleFmt  
  30. args=(sys.stdout,)  
  31.   
  32. [handler_fileHandler]  
  33. class=FileHandler  
  34. level=DEBUG  
  35. formatter=simpleFmt  
  36. args=("../log/p2pplayer.log", "a")  
  37.   
  38. [handler_rotatingFileHandler]  
  39. class=handlers.RotatingFileHandler  
  40. level=DEBUG  
  41. formatter=simpleFmt  
  42. args=("../log/p2pplayer.log", "a", 20*1024*1024, 10)  
  43.   
  44.   
  45. [formatter_simpleFmt]  
  46. format=%(asctime)s - %(name)s - %(levelname)s - %(message)s - [%(filename)s:%(lineno)s]  
  47. datefmt=</span>  

测试代码:

  1. <span style="font-size:18px;">def log_test02():  
  2.     import logging  
  3.     import logging.config  
  4.     CONF_LOG = "../conf/p2pplayer_logging.conf"  
  5.     logging.config.fileConfig(CONF_LOG);    # 采用配置文件  
  6.     logger = logging.getLogger("xzs")  
  7.     logger.debug("Hello xzs")  
  8.       
  9.     logger = logging.getLogger()  
  10.     logger.info("Hello root")  
  11.       
  12. if __name__ == "__main__":  
  13.     log_test02()</span>  

输出:

  1. <span style="font-size:18px;">2012-06-04 15:28:05,751 - xzs - DEBUG - Hello xzs - [xlog.py:29]  
  2. 2012-06-04 15:28:05,751 - root - INFO - Hello root - [xlog.py:32]</span>  

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

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


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

Format Description
%(name)s Name of the logger (logging channel).
%(levelno)s Numeric logging level for the message (DEBUGINFOWARNINGERRORCRITICAL).
%(levelname)s Text logging level for the message ('DEBUG''INFO''WARNING''ERROR''CRITICAL').
%(pathname)s Full pathname of the source file where the logging call was issued (if available).
%(filename)s Filename portion of pathname.
%(module)s Module (name portion of filename).
%(funcName)s Name of function containing the logging call.
%(lineno)d Source line number where the logging call was issued (if available).
%(created)f Time when the LogRecord was created (as returned by time.time()).
%(relativeCreated)d Time in milliseconds when the LogRecord was created, relative to the time the logging module was loaded.
%(asctime)s Human-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)d Millisecond portion of the time when the LogRecord was created.
%(thread)d Thread ID (if available).
%(threadName)s Thread name (if available).
%(process)d Process ID (if available).
%(message)s The logged message, computed as msg % args.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多