@@ -7835,6 +7835,9 @@ msgid ""
7835
7835
"uniformly formatted as if it was logged separately, you can do this using a "
7836
7836
"handler mixin, as in the following snippet:"
7837
7837
msgstr ""
7838
+ "通常,被记录的消息(输出到控制台或文件)是由单行文本组成的。 不过,在某些时候也会需要处理具有多行的消息 —— "
7839
+ "不论是因为日志格式字符串包含换行符,还是因为被记录的数据包含换行符。 "
7840
+ "如果你想以统一的方式处理此类消息,使得被记录的消息中的每一行格式看起来保持一致就像它是被单独记录的,你可以使用处理器混入类做到这一点,如下面的代码片段所示:"
7838
7841
7839
7842
#: ../../howto/logging-cookbook.rst:4092
7840
7843
msgid ""
@@ -7854,10 +7857,25 @@ msgid ""
7854
7857
" rec.msg = line\n"
7855
7858
" super().emit(rec)"
7856
7859
msgstr ""
7860
+ "# 假定这是在一个模块的 mymixins.py 中\n"
7861
+ "import copy\n"
7862
+ "\n"
7863
+ "class MultilineMixin:\n"
7864
+ " def emit(self, record):\n"
7865
+ " s = record.getMessage()\n"
7866
+ " if '\\ n' not in s:\n"
7867
+ " super().emit(record)\n"
7868
+ " else:\n"
7869
+ " lines = s.splitlines()\n"
7870
+ " rec = copy.copy(record)\n"
7871
+ " rec.args = None\n"
7872
+ " for line in lines:\n"
7873
+ " rec.msg = line\n"
7874
+ " super().emit(rec)"
7857
7875
7858
7876
#: ../../howto/logging-cookbook.rst:4110
7859
7877
msgid "You can use the mixin as in the following script:"
7860
- msgstr ""
7878
+ msgstr "你可以像下面的脚本一样使用该混入类: "
7861
7879
7862
7880
#: ../../howto/logging-cookbook.rst:4112
7863
7881
msgid ""
@@ -7878,10 +7896,26 @@ msgid ""
7878
7896
" logger.debug('Another single line')\n"
7879
7897
" logger.debug('Multiple lines:\\ n%s', 'fool me ...\\ ncan\\ 't get fooled again')"
7880
7898
msgstr ""
7899
+ "import logging\n"
7900
+ "\n"
7901
+ "from mymixins import MultilineMixin\n"
7902
+ "\n"
7903
+ "logger = logging.getLogger(__name__)\n"
7904
+ "\n"
7905
+ "class StreamHandler(MultilineMixin, logging.StreamHandler):\n"
7906
+ " pass\n"
7907
+ "\n"
7908
+ "if __name__ == '__main__':\n"
7909
+ " logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)-9s %(message)s',\n"
7910
+ " handlers = [StreamHandler()])\n"
7911
+ " logger.debug('Single line')\n"
7912
+ " logger.debug('Multiple lines:\\ nfool me once ...')\n"
7913
+ " logger.debug('Another single line')\n"
7914
+ " logger.debug('Multiple lines:\\ n%s', 'fool me ...\\ ncan\\ 't get fooled again')"
7881
7915
7882
7916
#: ../../howto/logging-cookbook.rst:4131
7883
7917
msgid "The script, when run, prints something like:"
7884
- msgstr ""
7918
+ msgstr "在运行时,这个脚本将打印如下内容: "
7885
7919
7886
7920
#: ../../howto/logging-cookbook.rst:4133
7887
7921
msgid ""
@@ -7893,6 +7927,13 @@ msgid ""
7893
7927
"2025-07-02 13:54:47,234 DEBUG fool me ...\n"
7894
7928
"2025-07-02 13:54:47,234 DEBUG can't get fooled again"
7895
7929
msgstr ""
7930
+ "2025-07-02 13:54:47,234 DEBUG Single line\n"
7931
+ "2025-07-02 13:54:47,234 DEBUG Multiple lines:\n"
7932
+ "2025-07-02 13:54:47,234 DEBUG fool me once ...\n"
7933
+ "2025-07-02 13:54:47,234 DEBUG Another single line\n"
7934
+ "2025-07-02 13:54:47,234 DEBUG Multiple lines:\n"
7935
+ "2025-07-02 13:54:47,234 DEBUG fool me ...\n"
7936
+ "2025-07-02 13:54:47,234 DEBUG can't get fooled again"
7896
7937
7897
7938
#: ../../howto/logging-cookbook.rst:4143
7898
7939
msgid ""
0 commit comments