@@ -4673,6 +4673,48 @@ msgid ""
4673
4673
"logger = logging.getLogger('mylogger')\n"
4674
4674
"logger.debug('A debug message')"
4675
4675
msgstr ""
4676
+ "import logging, logging.config, os, shutil\n"
4677
+ "\n"
4678
+ "def owned_file_handler(filename, mode='a', encoding=None, owner=None):\n"
4679
+ " if owner:\n"
4680
+ " if not os.path.exists(filename):\n"
4681
+ " open(filename, 'a').close()\n"
4682
+ " shutil.chown(filename, *owner)\n"
4683
+ " return logging.FileHandler(filename, mode, encoding)\n"
4684
+ "\n"
4685
+ "LOGGING = {\n"
4686
+ " 'version': 1,\n"
4687
+ " 'disable_existing_loggers': False,\n"
4688
+ " 'formatters': {\n"
4689
+ " 'default': {\n"
4690
+ " 'format': '%(asctime)s %(levelname)s %(name)s %(message)s'\n"
4691
+ " },\n"
4692
+ " },\n"
4693
+ " 'handlers': {\n"
4694
+ " 'file':{\n"
4695
+ " # 下面的值将从此字典中被弹出并被用来\n"
4696
+ " # 创建处理器、设置处理器的层级\n"
4697
+ " # 及其格式化器。\n"
4698
+ " '()': owned_file_handler,\n"
4699
+ " 'level':'DEBUG',\n"
4700
+ " 'formatter': 'default',\n"
4701
+ " # 下面的值将以关键字参数形式传给处理器的\n"
4702
+ " # 创建方可调用对象。\n"
4703
+ " 'owner': ['pulse', 'pulse'],\n"
4704
+ " 'filename': 'chowntest.log',\n"
4705
+ " 'mode': 'w',\n"
4706
+ " 'encoding': 'utf-8',\n"
4707
+ " },\n"
4708
+ " },\n"
4709
+ " 'root': {\n"
4710
+ " 'handlers': ['file'],\n"
4711
+ " 'level': 'DEBUG',\n"
4712
+ " },\n"
4713
+ "}\n"
4714
+ "\n"
4715
+ "logging.config.dictConfig(LOGGING)\n"
4716
+ "logger = logging.getLogger('mylogger')\n"
4717
+ "logger.debug('A debug message')"
4676
4718
4677
4719
#: ../../howto/logging-cookbook.rst:2655
4678
4720
msgid "To run this, you will probably need to run as ``root``:"
@@ -6028,6 +6070,11 @@ msgid ""
6028
6070
"5. This should appear twice - once on stderr and once on stdout.\n"
6029
6071
"6. This should appear just once on stderr."
6030
6072
msgstr ""
6073
+ "$ python logctx.py >/dev/null\n"
6074
+ "1. This should appear just once on stderr.\n"
6075
+ "3. This should appear once on stderr.\n"
6076
+ "5. This should appear twice - once on stderr and once on stdout.\n"
6077
+ "6. This should appear just once on stderr."
6031
6078
6032
6079
#: ../../howto/logging-cookbook.rst:3401
6033
6080
msgid ""
0 commit comments