@@ -1907,7 +1907,7 @@ msgstr ""
1907
1907
1908
1908
#: ../../howto/logging-cookbook.rst:1493
1909
1909
msgid "Using concurrent.futures.ProcessPoolExecutor"
1910
- msgstr ""
1910
+ msgstr "使用 concurrent.futures.ProcessPoolExecutor "
1911
1911
1912
1912
#: ../../howto/logging-cookbook.rst:1495
1913
1913
msgid ""
@@ -1918,7 +1918,7 @@ msgstr ""
1918
1918
1919
1919
#: ../../howto/logging-cookbook.rst:1499
1920
1920
msgid "queue = multiprocessing.Queue(-1)"
1921
- msgstr ""
1921
+ msgstr "queue = multiprocessing.Queue(-1) "
1922
1922
1923
1923
#: ../../howto/logging-cookbook.rst:1503
1924
1924
msgid "you should use"
@@ -4250,6 +4250,8 @@ msgid ""
4250
4250
"2015-10-17 12:53:29,501 The local time is Sat Oct 17 13:53:29 2015\n"
4251
4251
"2015-10-17 13:53:29,501 The local time is Sat Oct 17 13:53:29 2015"
4252
4252
msgstr ""
4253
+ "2015-10-17 12:53:29,501 The local time is Sat Oct 17 13:53:29 2015\n"
4254
+ "2015-10-17 13:53:29,501 The local time is Sat Oct 17 13:53:29 2015"
4253
4255
4254
4256
#: ../../howto/logging-cookbook.rst:3296
4255
4257
msgid ""
@@ -5011,6 +5013,13 @@ msgid ""
5011
5013
"i = 1\n"
5012
5014
"logger.debug('Message %d', i, extra=extra)"
5013
5015
msgstr ""
5016
+ "sd = {\n"
5017
+ " 'foo@12345': {'bar': 'baz', 'baz': 'bozz', 'fizz': r'buzz'},\n"
5018
+ " 'foo@54321': {'rab': 'baz', 'zab': 'bozz', 'zzif': r'buzz'}\n"
5019
+ "}\n"
5020
+ "extra = {'structured_data': sd}\n"
5021
+ "i = 1\n"
5022
+ "logger.debug('Message %d', i, extra=extra)"
5014
5023
5015
5024
#: ../../howto/logging-cookbook.rst:3915
5016
5025
msgid "How to treat a logger like an output stream"
@@ -5102,6 +5111,11 @@ msgid ""
5102
5111
"WARNING:demo:Bar\n"
5103
5112
">>>"
5104
5113
msgstr ""
5114
+ ">>> print('Foo')\n"
5115
+ "INFO:demo:Foo\n"
5116
+ ">>> print('Bar', file=sys.stderr)\n"
5117
+ "WARNING:demo:Bar\n"
5118
+ ">>>"
5105
5119
5106
5120
#: ../../howto/logging-cookbook.rst:3987
5107
5121
msgid ""
@@ -5175,6 +5189,22 @@ msgid ""
5175
5189
" for part in parts:\n"
5176
5190
" self.logger.log(self.level, part)"
5177
5191
msgstr ""
5192
+ "class BufferingLoggerWriter(LoggerWriter):\n"
5193
+ " def __init__(self, logger, level):\n"
5194
+ " super().__init__(logger, level)\n"
5195
+ " self.buffer = ''\n"
5196
+ "\n"
5197
+ " def write(self, message):\n"
5198
+ " if '\\ n' not in message:\n"
5199
+ " self.buffer += message\n"
5200
+ " else:\n"
5201
+ " parts = message.split('\\ n')\n"
5202
+ " if self.buffer:\n"
5203
+ " s = self.buffer + parts.pop(0)\n"
5204
+ " self.logger.log(self.level, s)\n"
5205
+ " self.buffer = parts.pop()\n"
5206
+ " for part in parts:\n"
5207
+ " self.logger.log(self.level, part)"
5178
5208
5179
5209
#: ../../howto/logging-cookbook.rst:4043
5180
5210
msgid ""
@@ -5193,6 +5223,14 @@ msgid ""
5193
5223
"WARNING:demo: 1/0\n"
5194
5224
"WARNING:demo:ZeroDivisionError: division by zero"
5195
5225
msgstr ""
5226
+ "WARNING:demo:Traceback (most recent call last):\n"
5227
+ "WARNING:demo: File \" /home/runner/cookbook-loggerwriter/main.py\" , line 55, "
5228
+ "in <module>\n"
5229
+ "WARNING:demo: main()\n"
5230
+ "WARNING:demo: File \" /home/runner/cookbook-loggerwriter/main.py\" , line 52, "
5231
+ "in main\n"
5232
+ "WARNING:demo: 1/0\n"
5233
+ "WARNING:demo:ZeroDivisionError: division by zero"
5196
5234
5197
5235
#: ../../howto/logging-cookbook.rst:4059
5198
5236
msgid "Patterns to avoid"
@@ -5314,7 +5352,7 @@ msgstr ""
5314
5352
5315
5353
#: ../../howto/logging-cookbook.rst:4136
5316
5354
msgid "Other resources"
5317
- msgstr ""
5355
+ msgstr "其他資源 "
5318
5356
5319
5357
#: ../../howto/logging-cookbook.rst:4140
5320
5358
msgid "Module :mod:`logging`"
0 commit comments