{"rsdb":{"rid":"372429","subhead":"","postdate":"0","aid":"261436","fid":"77","uid":"1","topic":"1","content":"
\n

Python \u5165\u95e8\u4e4b \u5185\u7f6e\u6a21\u5757 --logging\u6a21\u5757<\/h1> \n

1\u3001logging -- \u65e5\u5fd7<\/h2> \n

\uff081\uff09\u65e5\u5fd7\u7684\u4f5c\u7528\uff1a<\/h3> \n

<1> \u8bb0\u5f55\u7528\u6237\u4fe1\u606f<\/h4> \n

<2> \u8bb0\u5f55\u4e2a\u4eba\u6d41\u6c34<\/h4> \n

<3> \u8bb0\u5f55\u8f6f\u4ef6\u7684\u8fd0\u884c\u72b6\u6001<\/h4> \n

<4> \u8bb0\u5f55\u7a0b\u5e8f\u5458\u53d1\u51fa\u7684\u6307\u4ee4<\/h4> \n

<5> \u7528\u4e8e\u7a0b\u5e8f\u5458\u4ee3\u7801\u8c03\u8bd5<\/h4> \n

\uff082\uff09\u65e5\u5fd7\u7684\u51fd\u6570\u5f0f\u7b80\u5355\u914d\u7f6e\uff1a<\/h3> \n

logging.debug() # debug \u8c03\u8bd5 10<\/h4> \n

logging.info() # info \u4fe1\u606f 20<\/h4> \n

logging.warning() # warning \u8b66\u544a 30<\/h4> \n

logging.error() # error \u9519\u8bef 40<\/h4> \n

logging.critical() # critical \u5371\u9669 50<\/h4> \n

\uff083\uff09\u65e5\u5fd7\u4e2d\u8981\u8bb0\u5f55\u7684\u4fe1\u606f<\/h3> \n

? \u9ed8\u8ba4\u60c5\u51b5\u4e0bPython\u7684logging\u6a21\u5757\u5c06\u65e5\u5fd7\u6253\u5370\u5230\u4e86\u6807\u51c6\u8f93\u51fa\u4e2d\uff0c\u4e14\u53ea\u663e\u793a\u4e86\u5927\u4e8e\u7b49\u4e8eWARNING\u7ea7\u522b\u7684\u65e5\u5fd7\uff0c\u8fd9\u8bf4\u660e\u9ed8\u8ba4\u7684\u65e5\u5fd7\u7ea7\u522b\u8bbe\u7f6e\u4e3aWARNING<\/p> \n

\uff08\u65e5\u5fd7\u7ea7\u522b\u7b49\u7ea7CRITICAL > ERROR > WARNING > INFO > DEBUG\uff09\uff0c<\/p> \n

\u9ed8\u8ba4\u7684\u65e5\u5fd7\u683c\u5f0f\u4e3a\u65e5\u5fd7\u7ea7\u522b\uff1aLogger\u540d\u79f0\uff1a\u7528\u6237\u8f93\u51fa\u6d88\u606f\u3002<\/p> \n

\u9ed8\u8ba4\u4ecewarning\u5f00\u59cb\u8bb0\u5f55<\/p> \n

logging.basicConfig(level = 30) # \u8c03\u8282\u5f00\u59cb\u7ea7\u522b \u9ed8\u8ba4\u4e3a30<\/p> \n

\uff084\uff09\u624b\u52a8\u6321<\/h3> \n
import logging\nlogging.basicConfig(\n     level=logging.DEBUG,\n     format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',\n                     datefmt='%Y-%m-%d %H:%M:%S',\n                     filename="test.log",\n                     filemode="a",\n )\n\n\n logging.debug("\u4f60\u662f\u75af\u513f,\u6211\u662f\u50bb") # debug \u8c03\u8bd5\n logging.info("\u75af\u75af\u766b\u766b\u53bb\u6211\u5bb6")   # info \u4fe1\u606f\n logging.warning("\u7f20\u7f20\u7ef5\u7ef5\u5230\u5929\u6daf")   # info \u8b66\u544a\n logging.error("\u6211\u4e0b\u4e0d\u5e8a")           # error \u9519\u8bef\n logging.critical("\u4f60\u56de\u4e0d\u4e86\u5bb6")        # critical \u5371\u9669<\/code><\/pre> \n 

<1> basicConfig()\u51fd\u6570\u4e2d\u53ef\u901a\u8fc7\u5177\u4f53\u53c2\u6570\u6765\u66f4\u6539logging\u6a21\u5757\u9ed8\u8ba4\u884c\u4e3a\uff0c\u53ef\u7528\u53c2\u6570\u6709\uff1a<\/strong><\/h4> \n
    \n
  • filename\uff1a\u7528\u6307\u5b9a\u7684\u6587\u4ef6\u540d\u521b\u5efaFiledHandler\uff0c\u8fd9\u6837\u65e5\u5fd7\u4f1a\u88ab\u5b58\u50a8\u5728\u6307\u5b9a\u7684\u6587\u4ef6\u4e2d\u3002<\/li> \n
  • filemode\uff1a\u6587\u4ef6\u6253\u5f00\u65b9\u5f0f\uff0c\u5728\u6307\u5b9a\u4e86filename\u65f6\u4f7f\u7528\u8fd9\u4e2a\u53c2\u6570\uff0c\u9ed8\u8ba4\u503c\u4e3a\u201ca\u201d\u8fd8\u53ef\u6307\u5b9a\u4e3a\u201cw\u201d\u3002<\/li> \n
  • format\uff1a\u6307\u5b9ahandler\u4f7f\u7528\u7684\u65e5\u5fd7\u663e\u793a\u683c\u5f0f\u3002<\/li> \n
  • datefmt\uff1a\u6307\u5b9a\u65e5\u671f\u65f6\u95f4\u683c\u5f0f\u3002<\/li> \n
  • level\uff1a\u8bbe\u7f6e\u8bb0\u5f55\u65e5\u5fd7\u7684\u7ea7\u522b<\/li> \n
  • stream\uff1a\u7528\u6307\u5b9a\u7684stream\u521b\u5efaStreamHandler\u3002\u53ef\u4ee5\u6307\u5b9a\u8f93\u51fa\u5230<\/li> \n
  • sys.stderr,sys.stdout\u6216\u8005\u6587\u4ef6(f=open(\u2018test.log\u2019,\u2019w\u2019))\uff0c\u9ed8\u8ba4\u4e3asys.stderr\u3002\u82e5\u540c\u65f6\u5217\u51fa\u4e86filename\u548cstream\u4e24\u4e2a\u53c2\u6570\uff0c\u5219stream\u53c2\u6570\u4f1a\u88ab\u5ffd\u7565\u3002<\/li> \n <\/ul> \n

    <2> format\u53c2\u6570\u4e2d\u53ef\u80fd\u7528\u5230\u7684\u683c\u5f0f\u5316\u4e32<\/strong>\uff1a<\/h4> \n
      \n
    • %(name)s Logger\u7684\u540d\u5b57<\/li> \n
    • %(levelno)s \u6570\u5b57\u5f62\u5f0f\u7684\u65e5\u5fd7\u7ea7\u522b<\/li> \n
    • %(levelname)s \u6587\u672c\u5f62\u5f0f\u7684\u65e5\u5fd7\u7ea7\u522b<\/li> \n
    • %(pathname)s \u8c03\u7528\u65e5\u5fd7\u8f93\u51fa\u51fd\u6570\u7684\u6a21\u5757\u7684\u5b8c\u6574\u8def\u5f84\u540d\uff0c\u53ef\u80fd\u6ca1\u6709<\/li> \n
    • %(filename)s \u8c03\u7528\u65e5\u5fd7\u8f93\u51fa\u51fd\u6570\u7684\u6a21\u5757\u7684\u6587\u4ef6\u540d<\/li> \n
    • %(module)s \u8c03\u7528\u65e5\u5fd7\u8f93\u51fa\u51fd\u6570\u7684\u6a21\u5757\u540d<\/li> \n
    • %(funcName)s \u8c03\u7528\u65e5\u5fd7\u8f93\u51fa\u51fd\u6570\u7684\u51fd\u6570\u540d<\/li> \n
    • %(lineno)d \u8c03\u7528\u65e5\u5fd7\u8f93\u51fa\u51fd\u6570\u7684\u8bed\u53e5\u6240\u5728\u7684\u4ee3\u7801\u884c<\/li> \n
    • %(created)f \u5f53\u524d\u65f6\u95f4\uff0c\u7528UNIX\u6807\u51c6\u7684\u8868\u793a\u65f6\u95f4\u7684\u6d6e \u70b9\u6570\u8868\u793a<\/li> \n
    • %(relativeCreated)d \u8f93\u51fa\u65e5\u5fd7\u4fe1\u606f\u65f6\u7684\uff0c\u81eaLogger\u521b\u5efa\u4ee5 \u6765\u7684\u6beb\u79d2\u6570<\/li> \n
    • %(asctime)s \u5b57\u7b26\u4e32\u5f62\u5f0f\u7684\u5f53\u524d\u65f6\u95f4\u3002\u9ed8\u8ba4\u683c\u5f0f\u662f \u201c2003-07-08 16:49:45,896\u201d\u3002\u9017\u53f7\u540e\u9762\u7684\u662f\u6beb\u79d2<\/li> \n
    • %(thread)d \u7ebf\u7a0bID\u3002\u53ef\u80fd\u6ca1\u6709<\/li> \n
    • %(threadName)s \u7ebf\u7a0b\u540d\u3002\u53ef\u80fd\u6ca1\u6709<\/li> \n
    • %(process)d \u8fdb\u7a0bID\u3002\u53ef\u80fd\u6ca1\u6709<\/li> \n
    • %(message)s\u7528\u6237\u8f93\u51fa\u7684\u6d88\u606f<\/li> \n <\/ul> \n

      \uff085\uff09\u81ea\u52a8\u6321<\/h3> \n
      import logging\n# \u521d\u59cb\u5316\u4e00\u4e2a\u7a7a\u65e5\u5fd7\nlogger = logging.getLogger()   # -- \u521b\u5efa\u4e86\u4e00\u4e2a\u5bf9\u8c61\n# \u521b\u5efa\u4e00\u4e2a\u6587\u4ef6,\u7528\u4e8e\u8bb0\u5f55\u65e5\u5fd7\u4fe1\u606f\nfh = logging.FileHandler('test.log',encoding='utf-8')\n# \u521b\u5efa\u4e00\u4e2a\u6587\u4ef6,\u7528\u4e8e\u8bb0\u5f55\u65e5\u5fd7\u4fe1\u606f\nfh1 = logging.FileHandler('test1.log',encoding='utf-8')\n# \u521b\u5efa\u4e00\u4e2a\u53ef\u4ee5\u5728\u5c4f\u5e55\u8f93\u51fa\u7684\u4e1c\u897f\nch = logging.StreamHandler()\n# \u5bf9\u8981\u8bb0\u5f55\u7684\u4fe1\u606f\u5b9a\u4e49\u683c\u5f0f\nmsg = logging.Formatter('%(asctime)s - [line:%(lineno)d] - %(filename)s - %(levelname)s - %(message)s')\n# \u5bf9\u8981\u8bb0\u5f55\u7684\u4fe1\u606f\u5b9a\u4e49\u683c\u5f0f\nmsg1 = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')\n# \u8bbe\u7f6e\u8bb0\u5f55\u7b49\u7ea7\nlogger.setLevel(10) or logger.setLevel(logging.DEBUG)\n# \u7b49\u7ea7\u5bf9\u5e94\u8868\n'''\nDEBUG - 10\nINFO - 20\nWARNING - 30\nERROR - 40\nCRITICAL - 50\n'''\n# \u5c06\u54b1\u4eec\u8bbe\u7f6e\u597d\u7684\u683c\u5f0f\u7ed1\u5b9a\u5230\u6587\u4ef6\u4e0a\nfh.setFormatter(msg)\nfh1.setFormatter(msg)\n# \u5c06\u54b1\u4eec\u8bbe\u7f6e\u597d\u7684\u683c\u5f0f\u7ed1\u5b9a\u5230\u5c4f\u5e55\u4e0a\nch.setFormatter(msg1)\n# \u5c06\u8bbe\u7f6e\u5b58\u50a8\u65e5\u5fd7\u4fe1\u606f\u7684\u6587\u4ef6\u7ed1\u5b9a\u5230logger\u65e5\u5fd7\u4e0a\nlogger.addHandler(fh) #logger\u5bf9\u8c61\u53ef\u4ee5\u6dfb\u52a0\u591a\u4e2afh\u548cch\u5bf9\u8c61\nlogger.addHandler(fh1)\nlogger.addHandler(ch)\n# \u8bb0\u5f55\u65e5\u5fd7\nlogger.debug([1,2,3,4,])\nlogger.info('logger info message')\nlogger.warning('logger warning message')\nlogger.error('logger error message')\nlogger.critical('logger critical message')<\/code><\/pre> \n<\/div>","orderid":"0","title":"Python \u5165\u95e8\u4e4b \u5185\u7f6e\u6a21\u5757 --logging\u6a21\u5757","smalltitle":"","mid":"0","fname":"Python","special_id":"0","bak_id":"0","info":"0","hits":"40","pages":"1","comments":"0","posttime":"2019-09-19 11:10:16","list":"1568862616","username":"admin","author":"","copyfrom":"","copyfromurl":"","titlecolor":"","fonttype":"0","titleicon":"0","picurl":"https:\/\/www.cppentry.com\/upload_files\/","ispic":"0","yz":"1","yzer":"","yztime":"0","levels":"0","levelstime":"0","keywords":"Python<\/A> \u5165\u95e8<\/A> \u5185\u7f6e<\/A> \u6a21\u5757<\/A> --logging<\/A>","jumpurl":"","iframeurl":"","style":"","template":"a:3:{s:4:\"head\";s:0:\"\";s:4:\"foot\";s:0:\"\";s:8:\"bencandy\";s:0:\"\";}","target":"0","ip":"14.17.22.32","lastfid":"0","money":"0","buyuser":"","passwd":"","allowdown":"","allowview":"","editer":"","edittime":"0","begintime":"0","endtime":"0","description":"Python \u5165\u95e8\u4e4b \u5185\u7f6e\u6a21\u5757 --logging\u6a21\u5757","lastview":"1713535462","digg_num":"0","digg_time":"0","forbidcomment":"0","ifvote":"0","heart":"","htmlname":"","city_id":"0"},"page":"1"}