{"id":965,"date":"2022-01-10T15:59:18","date_gmt":"2022-01-10T07:59:18","guid":{"rendered":"http:\/\/www.eait.co\/?p=965"},"modified":"2022-01-10T16:06:30","modified_gmt":"2022-01-10T08:06:30","slug":"python-%e6%97%a5%e5%bf%97%e5%99%a8%ef%bc%88%e7%9b%b4%e6%8e%a5%e7%94%a8%ef%bc%89","status":"publish","type":"post","link":"https:\/\/notes.coremix.net\/?p=965","title":{"rendered":"python \u65e5\u5fd7\u5668\uff08\u76f4\u63a5\u7528\uff09"},"content":{"rendered":"<p>\u4f7f\u7528\u65b9\u6cd5\u5982\u4e0b\uff08\u53ef\u5b9a\u4e49\u591a\u4e2apython logger\uff09\uff1a<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\nimport  logging\r\nclass Log(object):\r\n    def __init__(self, name=__name__, path='mylog.log', level='DEBUG'):\r\n        self.__name = name\r\n        self.__path = path\r\n        self.__level = level\r\n        self.__logger = logging.getLogger(self.__name)\r\n        self.__logger.setLevel(self.__level)\r\n    def __ini_handler(self):\r\n        &quot;&quot;&quot;\u521d\u59cb\u5316handler&quot;&quot;&quot;\r\n        stream_handler = logging.StreamHandler()\r\n        file_handler = logging.FileHandler(self.__path, encoding='utf-8')\r\n        return stream_handler, file_handler\r\n    def __set_handler(self, stream_handler, file_handler, level='DEBUG'):\r\n        &quot;&quot;&quot;\u8bbe\u7f6ehandler\u7ea7\u522b\u5e76\u6dfb\u52a0\u5230logger\u6536\u96c6\u5668&quot;&quot;&quot;\r\n        stream_handler.setLevel(level)\r\n        file_handler.setLevel(level)\r\n        self.__logger.addHandler(stream_handler)\r\n        self.__logger.addHandler(file_handler)\r\n    def __set_formatter(self, stream_handler, file_handler):\r\n        &quot;&quot;&quot;\u8bbe\u7f6e\u65e5\u5fd7\u8f93\u51fa\u683c\u5f0f&quot;&quot;&quot;\r\n      #   formatter = logging.Formatter('%(asctime)s-%(name)s-%(filename)s-&#x5B;line:%(lineno)d]'\r\n      # '-%(levelname)s-&#x5B;\u65e5\u5fd7\u4fe1\u606f]: %(message)s',\r\n      # datefmt='%a, %d %b %Y %H:%M:%S')\r\n        formatter = logging.Formatter('\u65f6\u95f4:%(asctime)s,'\r\n                                      '\u65e5\u5fd7\u7ea7\u522b:%(levelname)s,'\r\n                                      '\u65e5\u5fd7\u9519\u8bef\u884c\uff1a%(lineno)d,'\r\n                                      '\u8c03\u7528\u9519\u8bef\u7684\u51fd\u6570\uff1a%(funcName)s'\r\n                                      '\u65e5\u5fd7\u5185\u5bb9:%(message)s,'\r\n                                      )\r\n        stream_handler.setFormatter(formatter)\r\n        file_handler.setFormatter(formatter)\r\n    def __close_handler(self, stream_handler, file_handler):\r\n        &quot;&quot;&quot;\u5173\u95edhandler&quot;&quot;&quot;\r\n        stream_handler.close()\r\n        file_handler.close()\r\n    @property\r\n    def Logger(self):\r\n        &quot;&quot;&quot;\u6784\u9020\u6536\u96c6\u5668\uff0c\u8fd4\u56delooger&quot;&quot;&quot;\r\n        stream_handler, file_handler = self.__ini_handler()\r\n        self.__set_handler(stream_handler, file_handler)\r\n        self.__set_formatter(stream_handler, file_handler)\r\n        self.__close_handler(stream_handler, file_handler)\r\n        return self.__logger\r\n<\/pre>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\nif __name__ == '__main__':\r\n    pass\r\n\r\n    # log = Log('loged', log_path)\r\n#     # loged = log.Logger\r\n#     # log2 = Log('printlog', print_log_path)\r\n#     # print_log = log2.Logger\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u4f7f\u7528\u65b9\u6cd5\u5982\u4e0b\uff08\u53ef\u5b9a\u4e49\u591a\u4e2apython logger\uff09\uff1a import logging class Log(ob [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22,25],"tags":[20],"class_list":["post-965","post","type-post","status-publish","format-standard","hentry","category-java","category-py","tag-python"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/notes.coremix.net\/index.php?rest_route=\/wp\/v2\/posts\/965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/notes.coremix.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/notes.coremix.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/notes.coremix.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/notes.coremix.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=965"}],"version-history":[{"count":8,"href":"https:\/\/notes.coremix.net\/index.php?rest_route=\/wp\/v2\/posts\/965\/revisions"}],"predecessor-version":[{"id":973,"href":"https:\/\/notes.coremix.net\/index.php?rest_route=\/wp\/v2\/posts\/965\/revisions\/973"}],"wp:attachment":[{"href":"https:\/\/notes.coremix.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/notes.coremix.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/notes.coremix.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}