2018-07-04 09:06:45 +00:00
|
|
|
|
# Copyright (C) 2001-2018, Python Software Foundation
|
2018-07-04 09:08:42 +00:00
|
|
|
|
# For licence information, see README file.
|
2016-10-30 09:46:26 +00:00
|
|
|
|
#
|
|
|
|
|
msgid ""
|
|
|
|
|
msgstr ""
|
|
|
|
|
"Project-Id-Version: Python 3.6\n"
|
|
|
|
|
"Report-Msgid-Bugs-To: \n"
|
2019-03-20 08:02:55 +00:00
|
|
|
|
"POT-Creation-Date: 2019-03-11 12:59+0100\n"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
|
|
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
2018-07-04 09:14:25 +00:00
|
|
|
|
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
|
2017-05-23 22:40:56 +00:00
|
|
|
|
"Language: fr\n"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
"MIME-Version: 1.0\n"
|
|
|
|
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
|
|
|
"Content-Transfer-Encoding: 8bit\n"
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:2
|
|
|
|
|
msgid ":mod:`logging.config` --- Logging configuration"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:10
|
|
|
|
|
msgid "**Source code:** :source:`Lib/logging/config.py`"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:14
|
|
|
|
|
msgid ""
|
|
|
|
|
"This page contains only reference information. For tutorials, please see"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:17
|
|
|
|
|
msgid ":ref:`Basic Tutorial <logging-basic-tutorial>`"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:18
|
|
|
|
|
msgid ":ref:`Advanced Tutorial <logging-advanced-tutorial>`"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:19
|
|
|
|
|
msgid ":ref:`Logging Cookbook <logging-cookbook>`"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:23
|
|
|
|
|
msgid "This section describes the API for configuring the logging module."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:28
|
|
|
|
|
msgid "Configuration functions"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:30
|
|
|
|
|
msgid ""
|
|
|
|
|
"The following functions configure the logging module. They are located in "
|
|
|
|
|
"the :mod:`logging.config` module. Their use is optional --- you can "
|
|
|
|
|
"configure the logging module using these functions or by making calls to the "
|
|
|
|
|
"main API (defined in :mod:`logging` itself) and defining handlers which are "
|
|
|
|
|
"declared either in :mod:`logging` or :mod:`logging.handlers`."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:38
|
|
|
|
|
msgid ""
|
|
|
|
|
"Takes the logging configuration from a dictionary. The contents of this "
|
|
|
|
|
"dictionary are described in :ref:`logging-config-dictschema` below."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:42
|
|
|
|
|
msgid ""
|
|
|
|
|
"If an error is encountered during configuration, this function will raise a :"
|
|
|
|
|
"exc:`ValueError`, :exc:`TypeError`, :exc:`AttributeError` or :exc:"
|
|
|
|
|
"`ImportError` with a suitably descriptive message. The following is a "
|
|
|
|
|
"(possibly incomplete) list of conditions which will raise an error:"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:48
|
|
|
|
|
msgid ""
|
|
|
|
|
"A ``level`` which is not a string or which is a string not corresponding to "
|
|
|
|
|
"an actual logging level."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:50
|
|
|
|
|
msgid "A ``propagate`` value which is not a boolean."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:51
|
|
|
|
|
msgid "An id which does not have a corresponding destination."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:52
|
|
|
|
|
msgid "A non-existent handler id found during an incremental call."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:53
|
|
|
|
|
msgid "An invalid logger name."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:54
|
|
|
|
|
msgid "Inability to resolve to an internal or external object."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:56
|
|
|
|
|
msgid ""
|
|
|
|
|
"Parsing is performed by the :class:`DictConfigurator` class, whose "
|
|
|
|
|
"constructor is passed the dictionary used for configuration, and has a :meth:"
|
|
|
|
|
"`configure` method. The :mod:`logging.config` module has a callable "
|
|
|
|
|
"attribute :attr:`dictConfigClass` which is initially set to :class:"
|
|
|
|
|
"`DictConfigurator`. You can replace the value of :attr:`dictConfigClass` "
|
|
|
|
|
"with a suitable implementation of your own."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:64
|
|
|
|
|
msgid ""
|
|
|
|
|
":func:`dictConfig` calls :attr:`dictConfigClass` passing the specified "
|
|
|
|
|
"dictionary, and then calls the :meth:`configure` method on the returned "
|
|
|
|
|
"object to put the configuration into effect::"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:71
|
|
|
|
|
msgid ""
|
|
|
|
|
"For example, a subclass of :class:`DictConfigurator` could call "
|
|
|
|
|
"``DictConfigurator.__init__()`` in its own :meth:`__init__()`, then set up "
|
|
|
|
|
"custom prefixes which would be usable in the subsequent :meth:`configure` "
|
|
|
|
|
"call. :attr:`dictConfigClass` would be bound to this new subclass, and then :"
|
|
|
|
|
"func:`dictConfig` could be called exactly as in the default, uncustomized "
|
|
|
|
|
"state."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:82
|
|
|
|
|
msgid ""
|
|
|
|
|
"Reads the logging configuration from a :mod:`configparser`\\-format file. "
|
|
|
|
|
"The format of the file should be as described in :ref:`logging-config-"
|
|
|
|
|
"fileformat`. This function can be called several times from an application, "
|
|
|
|
|
"allowing an end user to select from various pre-canned configurations (if "
|
|
|
|
|
"the developer provides a mechanism to present the choices and load the "
|
|
|
|
|
"chosen configuration)."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2017-12-01 06:48:13 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:0
|
|
|
|
|
msgid "Parameters"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2016-10-30 09:46:26 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:90
|
|
|
|
|
msgid ""
|
|
|
|
|
"A filename, or a file-like object, or an instance derived from :class:"
|
|
|
|
|
"`~configparser.RawConfigParser`. If a ``RawConfigParser``-derived instance "
|
|
|
|
|
"is passed, it is used as is. Otherwise, a :class:`~configparser."
|
|
|
|
|
"Configparser` is instantiated, and the configuration read by it from the "
|
|
|
|
|
"object passed in ``fname``. If that has a :meth:`readline` method, it is "
|
|
|
|
|
"assumed to be a file-like object and read using :meth:`~configparser."
|
|
|
|
|
"ConfigParser.read_file`; otherwise, it is assumed to be a filename and "
|
|
|
|
|
"passed to :meth:`~configparser.ConfigParser.read`."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:102
|
|
|
|
|
msgid ""
|
|
|
|
|
"Defaults to be passed to the ConfigParser can be specified in this argument."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:105
|
|
|
|
|
msgid ""
|
|
|
|
|
"If specified as ``False``, loggers which exist when this call is made are "
|
|
|
|
|
"left enabled. The default is ``True`` because this enables old behaviour in "
|
2019-03-20 08:02:55 +00:00
|
|
|
|
"a backward-compatible way. This behaviour is to disable any existing non-"
|
|
|
|
|
"root loggers unless they or their ancestors are explicitly named in the "
|
|
|
|
|
"logging configuration."
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:114
|
|
|
|
|
msgid ""
|
|
|
|
|
"An instance of a subclass of :class:`~configparser.RawConfigParser` is now "
|
|
|
|
|
"accepted as a value for ``fname``. This facilitates:"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:118
|
|
|
|
|
msgid ""
|
|
|
|
|
"Use of a configuration file where logging configuration is just part of the "
|
|
|
|
|
"overall application configuration."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:120
|
|
|
|
|
msgid ""
|
|
|
|
|
"Use of a configuration read from a file, and then modified by the using "
|
|
|
|
|
"application (e.g. based on command-line parameters or other aspects of the "
|
|
|
|
|
"runtime environment) before being passed to ``fileConfig``."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:126
|
|
|
|
|
msgid ""
|
|
|
|
|
"Starts up a socket server on the specified port, and listens for new "
|
|
|
|
|
"configurations. If no port is specified, the module's default :const:"
|
|
|
|
|
"`DEFAULT_LOGGING_CONFIG_PORT` is used. Logging configurations will be sent "
|
|
|
|
|
"as a file suitable for processing by :func:`dictConfig` or :func:"
|
|
|
|
|
"`fileConfig`. Returns a :class:`~threading.Thread` instance on which you can "
|
|
|
|
|
"call :meth:`~threading.Thread.start` to start the server, and which you can :"
|
|
|
|
|
"meth:`~threading.Thread.join` when appropriate. To stop the server, call :"
|
|
|
|
|
"func:`stopListening`."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:135
|
|
|
|
|
msgid ""
|
|
|
|
|
"The ``verify`` argument, if specified, should be a callable which should "
|
|
|
|
|
"verify whether bytes received across the socket are valid and should be "
|
|
|
|
|
"processed. This could be done by encrypting and/or signing what is sent "
|
|
|
|
|
"across the socket, such that the ``verify`` callable can perform signature "
|
|
|
|
|
"verification and/or decryption. The ``verify`` callable is called with a "
|
|
|
|
|
"single argument - the bytes received across the socket - and should return "
|
|
|
|
|
"the bytes to be processed, or ``None`` to indicate that the bytes should be "
|
|
|
|
|
"discarded. The returned bytes could be the same as the passed in bytes (e.g. "
|
|
|
|
|
"when only verification is done), or they could be completely different "
|
|
|
|
|
"(perhaps if decryption were performed)."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:146
|
|
|
|
|
msgid ""
|
|
|
|
|
"To send a configuration to the socket, read in the configuration file and "
|
|
|
|
|
"send it to the socket as a sequence of bytes preceded by a four-byte length "
|
|
|
|
|
"string packed in binary using ``struct.pack('>L', n)``."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:152
|
|
|
|
|
msgid ""
|
|
|
|
|
"Because portions of the configuration are passed through :func:`eval`, use "
|
|
|
|
|
"of this function may open its users to a security risk. While the function "
|
|
|
|
|
"only binds to a socket on ``localhost``, and so does not accept connections "
|
|
|
|
|
"from remote machines, there are scenarios where untrusted code could be run "
|
|
|
|
|
"under the account of the process which calls :func:`listen`. Specifically, "
|
|
|
|
|
"if the process calling :func:`listen` runs on a multi-user machine where "
|
|
|
|
|
"users cannot trust each other, then a malicious user could arrange to run "
|
|
|
|
|
"essentially arbitrary code in a victim user's process, simply by connecting "
|
|
|
|
|
"to the victim's :func:`listen` socket and sending a configuration which runs "
|
|
|
|
|
"whatever code the attacker wants to have executed in the victim's process. "
|
|
|
|
|
"This is especially easy to do if the default port is used, but not hard even "
|
|
|
|
|
"if a different port is used). To avoid the risk of this happening, use the "
|
|
|
|
|
"``verify`` argument to :func:`listen` to prevent unrecognised configurations "
|
|
|
|
|
"from being applied."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:168
|
|
|
|
|
msgid "The ``verify`` argument was added."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:173
|
|
|
|
|
msgid ""
|
|
|
|
|
"If you want to send configurations to the listener which don't disable "
|
|
|
|
|
"existing loggers, you will need to use a JSON format for the configuration, "
|
|
|
|
|
"which will use :func:`dictConfig` for configuration. This method allows you "
|
|
|
|
|
"to specify ``disable_existing_loggers`` as ``False`` in the configuration "
|
|
|
|
|
"you send."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:182
|
|
|
|
|
msgid ""
|
|
|
|
|
"Stops the listening server which was created with a call to :func:`listen`. "
|
|
|
|
|
"This is typically called before calling :meth:`join` on the return value "
|
|
|
|
|
"from :func:`listen`."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:190
|
|
|
|
|
msgid "Configuration dictionary schema"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:192
|
|
|
|
|
msgid ""
|
|
|
|
|
"Describing a logging configuration requires listing the various objects to "
|
|
|
|
|
"create and the connections between them; for example, you may create a "
|
|
|
|
|
"handler named 'console' and then say that the logger named 'startup' will "
|
|
|
|
|
"send its messages to the 'console' handler. These objects aren't limited to "
|
|
|
|
|
"those provided by the :mod:`logging` module because you might write your own "
|
|
|
|
|
"formatter or handler class. The parameters to these classes may also need to "
|
|
|
|
|
"include external objects such as ``sys.stderr``. The syntax for describing "
|
|
|
|
|
"these objects and connections is defined in :ref:`logging-config-dict-"
|
|
|
|
|
"connections` below."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:204
|
|
|
|
|
msgid "Dictionary Schema Details"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:206
|
|
|
|
|
msgid ""
|
|
|
|
|
"The dictionary passed to :func:`dictConfig` must contain the following keys:"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:209
|
|
|
|
|
msgid ""
|
|
|
|
|
"*version* - to be set to an integer value representing the schema version. "
|
|
|
|
|
"The only valid value at present is 1, but having this key allows the schema "
|
|
|
|
|
"to evolve while still preserving backwards compatibility."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:214
|
|
|
|
|
msgid ""
|
|
|
|
|
"All other keys are optional, but if present they will be interpreted as "
|
|
|
|
|
"described below. In all cases below where a 'configuring dict' is "
|
|
|
|
|
"mentioned, it will be checked for the special ``'()'`` key to see if a "
|
|
|
|
|
"custom instantiation is required. If so, the mechanism described in :ref:"
|
|
|
|
|
"`logging-config-dict-userdef` below is used to create an instance; "
|
|
|
|
|
"otherwise, the context is used to determine what to instantiate."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:221
|
|
|
|
|
msgid ""
|
|
|
|
|
"*formatters* - the corresponding value will be a dict in which each key is a "
|
|
|
|
|
"formatter id and each value is a dict describing how to configure the "
|
|
|
|
|
"corresponding :class:`~logging.Formatter` instance."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:225
|
|
|
|
|
msgid ""
|
|
|
|
|
"The configuring dict is searched for keys ``format`` and ``datefmt`` (with "
|
|
|
|
|
"defaults of ``None``) and these are used to construct a :class:`~logging."
|
|
|
|
|
"Formatter` instance."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:229
|
|
|
|
|
msgid ""
|
|
|
|
|
"*filters* - the corresponding value will be a dict in which each key is a "
|
|
|
|
|
"filter id and each value is a dict describing how to configure the "
|
|
|
|
|
"corresponding Filter instance."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:233
|
|
|
|
|
msgid ""
|
|
|
|
|
"The configuring dict is searched for the key ``name`` (defaulting to the "
|
|
|
|
|
"empty string) and this is used to construct a :class:`logging.Filter` "
|
|
|
|
|
"instance."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:237
|
|
|
|
|
msgid ""
|
|
|
|
|
"*handlers* - the corresponding value will be a dict in which each key is a "
|
|
|
|
|
"handler id and each value is a dict describing how to configure the "
|
|
|
|
|
"corresponding Handler instance."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:241 ../Doc/library/logging.config.rst:283
|
|
|
|
|
msgid "The configuring dict is searched for the following keys:"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:243
|
|
|
|
|
msgid ""
|
|
|
|
|
"``class`` (mandatory). This is the fully qualified name of the handler "
|
|
|
|
|
"class."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:246
|
|
|
|
|
msgid "``level`` (optional). The level of the handler."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:248
|
|
|
|
|
msgid "``formatter`` (optional). The id of the formatter for this handler."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:251
|
|
|
|
|
msgid "``filters`` (optional). A list of ids of the filters for this handler."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:254
|
|
|
|
|
msgid ""
|
|
|
|
|
"All *other* keys are passed through as keyword arguments to the handler's "
|
|
|
|
|
"constructor. For example, given the snippet:"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:273
|
|
|
|
|
msgid ""
|
|
|
|
|
"the handler with id ``console`` is instantiated as a :class:`logging."
|
|
|
|
|
"StreamHandler`, using ``sys.stdout`` as the underlying stream. The handler "
|
|
|
|
|
"with id ``file`` is instantiated as a :class:`logging.handlers."
|
|
|
|
|
"RotatingFileHandler` with the keyword arguments ``filename='logconfig.log', "
|
|
|
|
|
"maxBytes=1024, backupCount=3``."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:279
|
|
|
|
|
msgid ""
|
|
|
|
|
"*loggers* - the corresponding value will be a dict in which each key is a "
|
|
|
|
|
"logger name and each value is a dict describing how to configure the "
|
|
|
|
|
"corresponding Logger instance."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:285
|
|
|
|
|
msgid "``level`` (optional). The level of the logger."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:287
|
|
|
|
|
msgid "``propagate`` (optional). The propagation setting of the logger."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:289
|
|
|
|
|
msgid "``filters`` (optional). A list of ids of the filters for this logger."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:292
|
|
|
|
|
msgid ""
|
|
|
|
|
"``handlers`` (optional). A list of ids of the handlers for this logger."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:295
|
|
|
|
|
msgid ""
|
|
|
|
|
"The specified loggers will be configured according to the level, "
|
|
|
|
|
"propagation, filters and handlers specified."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:298
|
|
|
|
|
msgid ""
|
|
|
|
|
"*root* - this will be the configuration for the root logger. Processing of "
|
|
|
|
|
"the configuration will be as for any logger, except that the ``propagate`` "
|
|
|
|
|
"setting will not be applicable."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:302
|
|
|
|
|
msgid ""
|
|
|
|
|
"*incremental* - whether the configuration is to be interpreted as "
|
|
|
|
|
"incremental to the existing configuration. This value defaults to "
|
|
|
|
|
"``False``, which means that the specified configuration replaces the "
|
|
|
|
|
"existing configuration with the same semantics as used by the existing :func:"
|
|
|
|
|
"`fileConfig` API."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:308
|
|
|
|
|
msgid ""
|
|
|
|
|
"If the specified value is ``True``, the configuration is processed as "
|
|
|
|
|
"described in the section on :ref:`logging-config-dict-incremental`."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:311
|
|
|
|
|
msgid ""
|
2019-03-20 08:02:55 +00:00
|
|
|
|
"*disable_existing_loggers* - whether any existing non-root loggers are to be "
|
2016-10-30 09:46:26 +00:00
|
|
|
|
"disabled. This setting mirrors the parameter of the same name in :func:"
|
|
|
|
|
"`fileConfig`. If absent, this parameter defaults to ``True``. This value is "
|
|
|
|
|
"ignored if *incremental* is ``True``."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:319
|
|
|
|
|
msgid "Incremental Configuration"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:321
|
|
|
|
|
msgid ""
|
|
|
|
|
"It is difficult to provide complete flexibility for incremental "
|
|
|
|
|
"configuration. For example, because objects such as filters and formatters "
|
|
|
|
|
"are anonymous, once a configuration is set up, it is not possible to refer "
|
|
|
|
|
"to such anonymous objects when augmenting a configuration."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:327
|
|
|
|
|
msgid ""
|
|
|
|
|
"Furthermore, there is not a compelling case for arbitrarily altering the "
|
|
|
|
|
"object graph of loggers, handlers, filters, formatters at run-time, once a "
|
|
|
|
|
"configuration is set up; the verbosity of loggers and handlers can be "
|
|
|
|
|
"controlled just by setting levels (and, in the case of loggers, propagation "
|
|
|
|
|
"flags). Changing the object graph arbitrarily in a safe way is problematic "
|
|
|
|
|
"in a multi-threaded environment; while not impossible, the benefits are not "
|
|
|
|
|
"worth the complexity it adds to the implementation."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:336
|
|
|
|
|
msgid ""
|
|
|
|
|
"Thus, when the ``incremental`` key of a configuration dict is present and is "
|
|
|
|
|
"``True``, the system will completely ignore any ``formatters`` and "
|
|
|
|
|
"``filters`` entries, and process only the ``level`` settings in the "
|
|
|
|
|
"``handlers`` entries, and the ``level`` and ``propagate`` settings in the "
|
|
|
|
|
"``loggers`` and ``root`` entries."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:342
|
|
|
|
|
msgid ""
|
|
|
|
|
"Using a value in the configuration dict lets configurations to be sent over "
|
|
|
|
|
"the wire as pickled dicts to a socket listener. Thus, the logging verbosity "
|
|
|
|
|
"of a long-running application can be altered over time with no need to stop "
|
|
|
|
|
"and restart the application."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:350
|
|
|
|
|
msgid "Object connections"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:352
|
|
|
|
|
msgid ""
|
|
|
|
|
"The schema describes a set of logging objects - loggers, handlers, "
|
|
|
|
|
"formatters, filters - which are connected to each other in an object graph. "
|
|
|
|
|
"Thus, the schema needs to represent connections between the objects. For "
|
|
|
|
|
"example, say that, once configured, a particular logger has attached to it a "
|
|
|
|
|
"particular handler. For the purposes of this discussion, we can say that "
|
|
|
|
|
"the logger represents the source, and the handler the destination, of a "
|
|
|
|
|
"connection between the two. Of course in the configured objects this is "
|
|
|
|
|
"represented by the logger holding a reference to the handler. In the "
|
|
|
|
|
"configuration dict, this is done by giving each destination object an id "
|
|
|
|
|
"which identifies it unambiguously, and then using the id in the source "
|
|
|
|
|
"object's configuration to indicate that a connection exists between the "
|
|
|
|
|
"source and the destination object with that id."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:366
|
|
|
|
|
msgid "So, for example, consider the following YAML snippet:"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:387
|
|
|
|
|
msgid ""
|
|
|
|
|
"(Note: YAML used here because it's a little more readable than the "
|
|
|
|
|
"equivalent Python source form for the dictionary.)"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:390
|
|
|
|
|
msgid ""
|
|
|
|
|
"The ids for loggers are the logger names which would be used "
|
|
|
|
|
"programmatically to obtain a reference to those loggers, e.g. ``foo.bar."
|
|
|
|
|
"baz``. The ids for Formatters and Filters can be any string value (such as "
|
|
|
|
|
"``brief``, ``precise`` above) and they are transient, in that they are only "
|
|
|
|
|
"meaningful for processing the configuration dictionary and used to determine "
|
|
|
|
|
"connections between objects, and are not persisted anywhere when the "
|
|
|
|
|
"configuration call is complete."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:398
|
|
|
|
|
msgid ""
|
|
|
|
|
"The above snippet indicates that logger named ``foo.bar.baz`` should have "
|
|
|
|
|
"two handlers attached to it, which are described by the handler ids ``h1`` "
|
|
|
|
|
"and ``h2``. The formatter for ``h1`` is that described by id ``brief``, and "
|
|
|
|
|
"the formatter for ``h2`` is that described by id ``precise``."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:408
|
|
|
|
|
msgid "User-defined objects"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:410
|
|
|
|
|
msgid ""
|
|
|
|
|
"The schema supports user-defined objects for handlers, filters and "
|
|
|
|
|
"formatters. (Loggers do not need to have different types for different "
|
|
|
|
|
"instances, so there is no support in this configuration schema for user-"
|
|
|
|
|
"defined logger classes.)"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:415
|
|
|
|
|
msgid ""
|
|
|
|
|
"Objects to be configured are described by dictionaries which detail their "
|
|
|
|
|
"configuration. In some places, the logging system will be able to infer "
|
|
|
|
|
"from the context how an object is to be instantiated, but when a user-"
|
|
|
|
|
"defined object is to be instantiated, the system will not know how to do "
|
|
|
|
|
"this. In order to provide complete flexibility for user-defined object "
|
|
|
|
|
"instantiation, the user needs to provide a 'factory' - a callable which is "
|
|
|
|
|
"called with a configuration dictionary and which returns the instantiated "
|
|
|
|
|
"object. This is signalled by an absolute import path to the factory being "
|
|
|
|
|
"made available under the special key ``'()'``. Here's a concrete example:"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:441
|
|
|
|
|
msgid ""
|
|
|
|
|
"The above YAML snippet defines three formatters. The first, with id "
|
|
|
|
|
"``brief``, is a standard :class:`logging.Formatter` instance with the "
|
|
|
|
|
"specified format string. The second, with id ``default``, has a longer "
|
|
|
|
|
"format and also defines the time format explicitly, and will result in a :"
|
|
|
|
|
"class:`logging.Formatter` initialized with those two format strings. Shown "
|
|
|
|
|
"in Python source form, the ``brief`` and ``default`` formatters have "
|
|
|
|
|
"configuration sub-dictionaries::"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:453
|
|
|
|
|
msgid "and::"
|
|
|
|
|
msgstr "et : ::"
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:460
|
|
|
|
|
msgid ""
|
|
|
|
|
"respectively, and as these dictionaries do not contain the special key "
|
|
|
|
|
"``'()'``, the instantiation is inferred from the context: as a result, "
|
|
|
|
|
"standard :class:`logging.Formatter` instances are created. The "
|
|
|
|
|
"configuration sub-dictionary for the third formatter, with id ``custom``, "
|
|
|
|
|
"is::"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:473
|
|
|
|
|
msgid ""
|
|
|
|
|
"and this contains the special key ``'()'``, which means that user-defined "
|
|
|
|
|
"instantiation is wanted. In this case, the specified factory callable will "
|
|
|
|
|
"be used. If it is an actual callable it will be used directly - otherwise, "
|
|
|
|
|
"if you specify a string (as in the example) the actual callable will be "
|
|
|
|
|
"located using normal import mechanisms. The callable will be called with the "
|
|
|
|
|
"**remaining** items in the configuration sub-dictionary as keyword "
|
|
|
|
|
"arguments. In the above example, the formatter with id ``custom`` will be "
|
|
|
|
|
"assumed to be returned by the call::"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:485
|
|
|
|
|
msgid ""
|
|
|
|
|
"The key ``'()'`` has been used as the special key because it is not a valid "
|
|
|
|
|
"keyword parameter name, and so will not clash with the names of the keyword "
|
|
|
|
|
"arguments used in the call. The ``'()'`` also serves as a mnemonic that the "
|
|
|
|
|
"corresponding value is a callable."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:494
|
|
|
|
|
msgid "Access to external objects"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:496
|
|
|
|
|
msgid ""
|
|
|
|
|
"There are times where a configuration needs to refer to objects external to "
|
|
|
|
|
"the configuration, for example ``sys.stderr``. If the configuration dict is "
|
|
|
|
|
"constructed using Python code, this is straightforward, but a problem arises "
|
|
|
|
|
"when the configuration is provided via a text file (e.g. JSON, YAML). In a "
|
|
|
|
|
"text file, there is no standard way to distinguish ``sys.stderr`` from the "
|
|
|
|
|
"literal string ``'sys.stderr'``. To facilitate this distinction, the "
|
|
|
|
|
"configuration system looks for certain special prefixes in string values and "
|
|
|
|
|
"treat them specially. For example, if the literal string ``'ext://sys."
|
|
|
|
|
"stderr'`` is provided as a value in the configuration, then the ``ext://`` "
|
|
|
|
|
"will be stripped off and the remainder of the value processed using normal "
|
|
|
|
|
"import mechanisms."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:509
|
|
|
|
|
msgid ""
|
|
|
|
|
"The handling of such prefixes is done in a way analogous to protocol "
|
|
|
|
|
"handling: there is a generic mechanism to look for prefixes which match the "
|
|
|
|
|
"regular expression ``^(?P<prefix>[a-z]+)://(?P<suffix>.*)$`` whereby, if the "
|
|
|
|
|
"``prefix`` is recognised, the ``suffix`` is processed in a prefix-dependent "
|
|
|
|
|
"manner and the result of the processing replaces the string value. If the "
|
|
|
|
|
"prefix is not recognised, then the string value will be left as-is."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:521
|
|
|
|
|
msgid "Access to internal objects"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:523
|
|
|
|
|
msgid ""
|
|
|
|
|
"As well as external objects, there is sometimes also a need to refer to "
|
|
|
|
|
"objects in the configuration. This will be done implicitly by the "
|
|
|
|
|
"configuration system for things that it knows about. For example, the "
|
|
|
|
|
"string value ``'DEBUG'`` for a ``level`` in a logger or handler will "
|
|
|
|
|
"automatically be converted to the value ``logging.DEBUG``, and the "
|
|
|
|
|
"``handlers``, ``filters`` and ``formatter`` entries will take an object id "
|
|
|
|
|
"and resolve to the appropriate destination object."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:531
|
|
|
|
|
msgid ""
|
|
|
|
|
"However, a more generic mechanism is needed for user-defined objects which "
|
|
|
|
|
"are not known to the :mod:`logging` module. For example, consider :class:"
|
|
|
|
|
"`logging.handlers.MemoryHandler`, which takes a ``target`` argument which is "
|
|
|
|
|
"another handler to delegate to. Since the system already knows about this "
|
|
|
|
|
"class, then in the configuration, the given ``target`` just needs to be the "
|
|
|
|
|
"object id of the relevant target handler, and the system will resolve to the "
|
|
|
|
|
"handler from the id. If, however, a user defines a ``my.package.MyHandler`` "
|
|
|
|
|
"which has an ``alternate`` handler, the configuration system would not know "
|
|
|
|
|
"that the ``alternate`` referred to a handler. To cater for this, a generic "
|
2018-04-28 22:28:01 +00:00
|
|
|
|
"resolution system allows the user to specify:"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-04-28 22:28:01 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:553
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The literal string ``'cfg://handlers.file'`` will be resolved in an "
|
|
|
|
|
"analogous way to strings with the ``ext://`` prefix, but looking in the "
|
|
|
|
|
"configuration itself rather than the import namespace. The mechanism allows "
|
|
|
|
|
"access by dot or by index, in a similar way to that provided by ``str."
|
2018-04-28 22:28:01 +00:00
|
|
|
|
"format``. Thus, given the following snippet:"
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-04-28 22:28:01 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:571
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"in the configuration, the string ``'cfg://handlers'`` would resolve to the "
|
|
|
|
|
"dict with key ``handlers``, the string ``'cfg://handlers.email`` would "
|
|
|
|
|
"resolve to the dict with key ``email`` in the ``handlers`` dict, and so on. "
|
|
|
|
|
"The string ``'cfg://handlers.email.toaddrs[1]`` would resolve to ``'dev_team."
|
|
|
|
|
"domain.tld'`` and the string ``'cfg://handlers.email.toaddrs[0]'`` would "
|
|
|
|
|
"resolve to the value ``'support_team@domain.tld'``. The ``subject`` value "
|
|
|
|
|
"could be accessed using either ``'cfg://handlers.email.subject'`` or, "
|
|
|
|
|
"equivalently, ``'cfg://handlers.email[subject]'``. The latter form only "
|
|
|
|
|
"needs to be used if the key contains spaces or non-alphanumeric characters. "
|
|
|
|
|
"If an index value consists only of decimal digits, access will be attempted "
|
|
|
|
|
"using the corresponding integer value, falling back to the string value if "
|
|
|
|
|
"needed."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-04-28 22:28:01 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:585
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"Given a string ``cfg://handlers.myhandler.mykey.123``, this will resolve to "
|
|
|
|
|
"``config_dict['handlers']['myhandler']['mykey']['123']``. If the string is "
|
|
|
|
|
"specified as ``cfg://handlers.myhandler.mykey[123]``, the system will "
|
|
|
|
|
"attempt to retrieve the value from ``config_dict['handlers']['myhandler']"
|
|
|
|
|
"['mykey'][123]``, and fall back to ``config_dict['handlers']['myhandler']"
|
|
|
|
|
"['mykey']['123']`` if that fails."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-04-28 22:28:01 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:597
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "Import resolution and custom importers"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-04-28 22:28:01 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:599
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"Import resolution, by default, uses the builtin :func:`__import__` function "
|
|
|
|
|
"to do its importing. You may want to replace this with your own importing "
|
|
|
|
|
"mechanism: if so, you can replace the :attr:`importer` attribute of the :"
|
|
|
|
|
"class:`DictConfigurator` or its superclass, the :class:`BaseConfigurator` "
|
|
|
|
|
"class. However, you need to be careful because of the way functions are "
|
|
|
|
|
"accessed from classes via descriptors. If you are using a Python callable to "
|
|
|
|
|
"do your imports, and you want to define it at class level rather than "
|
|
|
|
|
"instance level, you need to wrap it with :func:`staticmethod`. For example::"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-04-28 22:28:01 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:614
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"You don't need to wrap with :func:`staticmethod` if you're setting the "
|
|
|
|
|
"import callable on a configurator *instance*."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-04-28 22:28:01 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:621
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "Configuration file format"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-04-28 22:28:01 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:623
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The configuration file format understood by :func:`fileConfig` is based on :"
|
|
|
|
|
"mod:`configparser` functionality. The file must contain sections called "
|
|
|
|
|
"``[loggers]``, ``[handlers]`` and ``[formatters]`` which identify by name "
|
|
|
|
|
"the entities of each type which are defined in the file. For each such "
|
|
|
|
|
"entity, there is a separate section which identifies how that entity is "
|
|
|
|
|
"configured. Thus, for a logger named ``log01`` in the ``[loggers]`` "
|
|
|
|
|
"section, the relevant configuration details are held in a section "
|
|
|
|
|
"``[logger_log01]``. Similarly, a handler called ``hand01`` in the "
|
|
|
|
|
"``[handlers]`` section will have its configuration held in a section called "
|
|
|
|
|
"``[handler_hand01]``, while a formatter called ``form01`` in the "
|
|
|
|
|
"``[formatters]`` section will have its configuration specified in a section "
|
|
|
|
|
"called ``[formatter_form01]``. The root logger configuration must be "
|
|
|
|
|
"specified in a section called ``[logger_root]``."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-04-28 22:28:01 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:638
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The :func:`fileConfig` API is older than the :func:`dictConfig` API and does "
|
|
|
|
|
"not provide functionality to cover certain aspects of logging. For example, "
|
|
|
|
|
"you cannot configure :class:`~logging.Filter` objects, which provide for "
|
|
|
|
|
"filtering of messages beyond simple integer levels, using :func:"
|
|
|
|
|
"`fileConfig`. If you need to have instances of :class:`~logging.Filter` in "
|
|
|
|
|
"your logging configuration, you will need to use :func:`dictConfig`. Note "
|
|
|
|
|
"that future enhancements to configuration functionality will be added to :"
|
|
|
|
|
"func:`dictConfig`, so it's worth considering transitioning to this newer API "
|
|
|
|
|
"when it's convenient to do so."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-04-28 22:28:01 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:648
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "Examples of these sections in the file are given below."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-04-28 22:28:01 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:661
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The root logger must specify a level and a list of handlers. An example of a "
|
|
|
|
|
"root logger section is given below."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-04-28 22:28:01 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:670
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The ``level`` entry can be one of ``DEBUG, INFO, WARNING, ERROR, CRITICAL`` "
|
|
|
|
|
"or ``NOTSET``. For the root logger only, ``NOTSET`` means that all messages "
|
|
|
|
|
"will be logged. Level values are :func:`eval`\\ uated in the context of the "
|
|
|
|
|
"``logging`` package's namespace."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-04-28 22:28:01 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:675
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The ``handlers`` entry is a comma-separated list of handler names, which "
|
|
|
|
|
"must appear in the ``[handlers]`` section. These names must appear in the "
|
|
|
|
|
"``[handlers]`` section and have corresponding sections in the configuration "
|
|
|
|
|
"file."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-04-28 22:28:01 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:680
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"For loggers other than the root logger, some additional information is "
|
|
|
|
|
"required. This is illustrated by the following example."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-04-28 22:28:01 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:691
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The ``level`` and ``handlers`` entries are interpreted as for the root "
|
|
|
|
|
"logger, except that if a non-root logger's level is specified as ``NOTSET``, "
|
|
|
|
|
"the system consults loggers higher up the hierarchy to determine the "
|
|
|
|
|
"effective level of the logger. The ``propagate`` entry is set to 1 to "
|
|
|
|
|
"indicate that messages must propagate to handlers higher up the logger "
|
|
|
|
|
"hierarchy from this logger, or 0 to indicate that messages are **not** "
|
|
|
|
|
"propagated to handlers up the hierarchy. The ``qualname`` entry is the "
|
|
|
|
|
"hierarchical channel name of the logger, that is to say the name used by the "
|
|
|
|
|
"application to get the logger."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-04-28 22:28:01 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:700
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"Sections which specify handler configuration are exemplified by the "
|
|
|
|
|
"following."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-04-28 22:28:01 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:710
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The ``class`` entry indicates the handler's class (as determined by :func:"
|
|
|
|
|
"`eval` in the ``logging`` package's namespace). The ``level`` is interpreted "
|
|
|
|
|
"as for loggers, and ``NOTSET`` is taken to mean 'log everything'."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-04-28 22:28:01 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:714
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The ``formatter`` entry indicates the key name of the formatter for this "
|
|
|
|
|
"handler. If blank, a default formatter (``logging._defaultFormatter``) is "
|
|
|
|
|
"used. If a name is specified, it must appear in the ``[formatters]`` section "
|
|
|
|
|
"and have a corresponding section in the configuration file."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-04-28 22:28:01 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:719
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The ``args`` entry, when :func:`eval`\\ uated in the context of the "
|
|
|
|
|
"``logging`` package's namespace, is the list of arguments to the constructor "
|
|
|
|
|
"for the handler class. Refer to the constructors for the relevant handlers, "
|
2018-06-28 13:32:56 +00:00
|
|
|
|
"or to the examples below, to see how typical entries are constructed. If not "
|
|
|
|
|
"provided, it defaults to ``()``."
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-06-28 13:32:56 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:725
|
|
|
|
|
msgid ""
|
|
|
|
|
"The optional ``kwargs`` entry, when :func:`eval`\\ uated in the context of "
|
|
|
|
|
"the ``logging`` package's namespace, is the keyword argument dict to the "
|
|
|
|
|
"constructor for the handler class. If not provided, it defaults to ``{}``."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
|
|
|
|
#: ../Doc/library/logging.config.rst:782
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"Sections which specify formatter configuration are typified by the following."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-06-28 13:32:56 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:791
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The ``format`` entry is the overall format string, and the ``datefmt`` entry "
|
|
|
|
|
"is the :func:`strftime`\\ -compatible date/time format string. If empty, "
|
2018-06-10 09:32:30 +00:00
|
|
|
|
"the package substitutes something which is almost equivalent to specifying "
|
|
|
|
|
"the date format string ``'%Y-%m-%d %H:%M:%S'``. This format also specifies "
|
|
|
|
|
"milliseconds, which are appended to the result of using the above format "
|
|
|
|
|
"string, with a comma separator. An example time in this format is "
|
|
|
|
|
"``2003-01-23 00:29:50,411``."
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-06-28 13:32:56 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:798
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"The ``class`` entry is optional. It indicates the name of the formatter's "
|
|
|
|
|
"class (as a dotted module and class name.) This option is useful for "
|
|
|
|
|
"instantiating a :class:`~logging.Formatter` subclass. Subclasses of :class:"
|
|
|
|
|
"`~logging.Formatter` can present exception tracebacks in an expanded or "
|
|
|
|
|
"condensed format."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-06-28 13:32:56 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:806
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid ""
|
|
|
|
|
"Due to the use of :func:`eval` as described above, there are potential "
|
|
|
|
|
"security risks which result from using the :func:`listen` to send and "
|
|
|
|
|
"receive configurations via sockets. The risks are limited to where multiple "
|
|
|
|
|
"users with no mutual trust run code on the same machine; see the :func:"
|
|
|
|
|
"`listen` documentation for more information."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-06-28 13:32:56 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:815
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "Module :mod:`logging`"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-06-28 13:32:56 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:815
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "API reference for the logging module."
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-06-28 13:32:56 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:817
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "Module :mod:`logging.handlers`"
|
|
|
|
|
msgstr ""
|
|
|
|
|
|
2018-06-28 13:32:56 +00:00
|
|
|
|
#: ../Doc/library/logging.config.rst:818
|
2016-10-30 09:46:26 +00:00
|
|
|
|
msgid "Useful handlers included with the logging module."
|
|
|
|
|
msgstr ""
|