# Copyright (C) 2001-2018, Python Software Foundation
# For licence information, see README file.
msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 18:39+0100\n"
"PO-Revision-Date: 2021-12-11 16:24+0100\n"
"Last-Translator: Jean Abou Samra <jean@abou-samra.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.0\n"

#: howto/logging.rst:3
msgid "Logging HOWTO"
msgstr "Tutoriel sur la journalisation"

#: howto/logging.rst:0
msgid "Author"
msgstr "Auteur"

#: howto/logging.rst:5
msgid "Vinay Sajip <vinay_sajip at red-dove dot com>"
msgstr "Vinay Sajip <vinay_sajip at red-dove dot com>"

#: howto/logging.rst:12
msgid "Basic Logging Tutorial"
msgstr "Les bases de l'utilisation du module ``logging``"

#: howto/logging.rst:14
msgid ""
"Logging is a means of tracking events that happen when some software runs. "
"The software's developer adds logging calls to their code to indicate that "
"certain events have occurred. An event is described by a descriptive message "
"which can optionally contain variable data (i.e. data that is potentially "
"different for each occurrence of the event). Events also have an importance "
"which the developer ascribes to the event; the importance can also be called "
"the *level* or *severity*."
msgstr ""
"La journalisation (*logging* en anglais) est une façon de suivre les "
"événements qui ont lieu durant le fonctionnement d'un logiciel. Le "
"développeur du logiciel ajoute des appels à l'outil de journalisation dans "
"son code pour indiquer que certains événements ont eu lieu. Un événement est "
"décrit par un message descriptif, qui peut éventuellement contenir des "
"données variables (c'est-à-dire qui peuvent être différentes pour chaque "
"occurrence de l'événement). Un événement a aussi une importance que le "
"développeur lui attribue ; cette importance peut aussi être appelée *niveau* "
"ou *sévérité*."

#: howto/logging.rst:23
msgid "When to use logging"
msgstr "Quand utiliser ``logging``"

#: howto/logging.rst:25
msgid ""
"Logging provides a set of convenience functions for simple logging usage. "
"These are :func:`debug`, :func:`info`, :func:`warning`, :func:`error` and :"
"func:`critical`. To determine when to use logging, see the table below, "
"which states, for each of a set of common tasks, the best tool to use for it."
msgstr ""
"Le module *logging* fournit un ensemble de fonctions de commodités pour une "
"utilisation simple du module. Ce sont les fonctions :func:`debug`, :func:"
"`info`, :func:`warning`, :func:`error` et :func:`critical`. Pour déterminer "
"quand employer la journalisation, voyez la table ci-dessous, qui vous "
"indique, pour chaque tâche parmi les plus communes, l'outil approprié."

#: howto/logging.rst:31
msgid "Task you want to perform"
msgstr "Tâche que vous souhaitez mener"

#: howto/logging.rst:31
msgid "The best tool for the task"
msgstr "Le meilleur outil pour cette tâche"

#: howto/logging.rst:33
msgid ""
"Display console output for ordinary usage of a command line script or program"
msgstr ""
"Affiche la sortie console d'un script en ligne de commande ou d'un programme "
"lors de son utilisation ordinaire"

#: howto/logging.rst:33
msgid ":func:`print`"
msgstr ":func:`print`"

#: howto/logging.rst:37
msgid ""
"Report events that occur during normal operation of a program (e.g. for "
"status monitoring or fault investigation)"
msgstr ""
"Rapporter des évènements qui ont lieu au cours du fonctionnement normal d'un "
"programme (par exemple pour suivre un statut ou examiner des "
"dysfonctionnements)"

#: howto/logging.rst:37
msgid ""
":func:`logging.info` (or :func:`logging.debug` for very detailed output for "
"diagnostic purposes)"
msgstr ""
":func:`logging.info` (ou :func:`logging.debug` pour une sortie très "
"détaillée à visée diagnostique)"

#: howto/logging.rst:42
msgid "Issue a warning regarding a particular runtime event"
msgstr ""
"Émettre un avertissement (*warning* en anglais) en relation avec un "
"évènement particulier au cours du fonctionnement d’un programme"

#: howto/logging.rst:42
msgid ""
":func:`warnings.warn` in library code if the issue is avoidable and the "
"client application should be modified to eliminate the warning"
msgstr ""
":func:`warnings.warn` dans le code de la bibliothèque si le problème est "
"évitable et l'application cliente doit être modifiée pour éliminer cet "
"avertissement"

#: howto/logging.rst:47
msgid ""
":func:`logging.warning` if there is nothing the client application can do "
"about the situation, but the event should still be noted"
msgstr ""
":func:`logging.warning` si l'application cliente ne peut rien faire pour "
"corriger la situation mais l'évènement devrait quand même être noté"

#: howto/logging.rst:52
msgid "Report an error regarding a particular runtime event"
msgstr ""
"Rapporter une erreur lors d'un évènement particulier en cours d'exécution"

#: howto/logging.rst:52
msgid "Raise an exception"
msgstr "Lever une exception"

#: howto/logging.rst:55
msgid ""
"Report suppression of an error without raising an exception (e.g. error "
"handler in a long-running server process)"
msgstr ""
"Rapporter la suppression d'une erreur sans lever d'exception (par exemple "
"pour la gestion d'erreur d'un processus de long terme sur un serveur)"

#: howto/logging.rst:55
msgid ""
":func:`logging.error`, :func:`logging.exception` or :func:`logging.critical` "
"as appropriate for the specific error and application domain"
msgstr ""
":func:`logging.error`, :func:`logging.exception` ou :func:`logging."
"critical`, au mieux, selon l'erreur spécifique et le domaine d'application"

#: howto/logging.rst:62
msgid ""
"The logging functions are named after the level or severity of the events "
"they are used to track. The standard levels and their applicability are "
"described below (in increasing order of severity):"
msgstr ""
"Les fonctions de journalisation sont nommées d'après le niveau ou la "
"sévérité des évènements qu'elles suivent. Les niveaux standards et leurs "
"applications sont décrits ci-dessous (par ordre croissant de sévérité) :"

#: howto/logging.rst:861
msgid "Level"
msgstr "Niveau"

#: howto/logging.rst:69
msgid "When it's used"
msgstr "Quand il est utilisé"

#: howto/logging.rst:871
msgid "``DEBUG``"
msgstr "``DEBUG``"

#: howto/logging.rst:71
msgid ""
"Detailed information, typically of interest only when diagnosing problems."
msgstr ""
"Information détaillée, intéressante seulement lorsqu'on diagnostique un "
"problème."

#: howto/logging.rst:869
msgid "``INFO``"
msgstr "``INFO``"

#: howto/logging.rst:74
msgid "Confirmation that things are working as expected."
msgstr "Confirmation que tout fonctionne comme prévu."

#: howto/logging.rst:867
msgid "``WARNING``"
msgstr "``WARNING``"

#: howto/logging.rst:77
msgid ""
"An indication that something unexpected happened, or indicative of some "
"problem in the near future (e.g. 'disk space low'). The software is still "
"working as expected."
msgstr ""
"L'indication que quelque chose d'inattendu a eu lieu, ou de la possibilité "
"d'un problème dans un futur proche (par exemple « espace disque faible »). "
"Le logiciel fonctionne encore normalement."

#: howto/logging.rst:865
msgid "``ERROR``"
msgstr "``ERROR``"

#: howto/logging.rst:82
msgid ""
"Due to a more serious problem, the software has not been able to perform "
"some function."
msgstr ""
"Du fait d'un problème plus sérieux, le logiciel n'a pas été capable de "
"réaliser une tâche."

#: howto/logging.rst:863
msgid "``CRITICAL``"
msgstr "``CRITICAL``"

#: howto/logging.rst:85
msgid ""
"A serious error, indicating that the program itself may be unable to "
"continue running."
msgstr ""
"Une erreur sérieuse, indiquant que le programme lui-même pourrait être "
"incapable de continuer à fonctionner."

#: howto/logging.rst:89
msgid ""
"The default level is ``WARNING``, which means that only events of this level "
"and above will be tracked, unless the logging package is configured to do "
"otherwise."
msgstr ""
"Le niveau par défaut est ``WARNING``, ce qui signifie que seuls les "
"évènements de ce niveau et au-dessus sont suivis, sauf si le paquet "
"*logging* est configuré pour faire autrement."

#: howto/logging.rst:93
msgid ""
"Events that are tracked can be handled in different ways. The simplest way "
"of handling tracked events is to print them to the console. Another common "
"way is to write them to a disk file."
msgstr ""
"Les évènements suivis peuvent être gérés de différentes façons. La manière "
"la plus simple est de les afficher dans la console. Une autre méthode "
"commune est de les écrire dans un fichier."

#: howto/logging.rst:101
msgid "A simple example"
msgstr "Un exemple simple"

#: howto/logging.rst:103
msgid "A very simple example is::"
msgstr "Un exemple très simple est ::"

#: howto/logging.rst:109
msgid "If you type these lines into a script and run it, you'll see:"
msgstr ""
"Si vous entrez ces lignes dans un script que vous exécutez, vous verrez :"

#: howto/logging.rst:115
msgid ""
"printed out on the console. The ``INFO`` message doesn't appear because the "
"default level is ``WARNING``. The printed message includes the indication of "
"the level and the description of the event provided in the logging call, i."
"e. 'Watch out!'. Don't worry about the 'root' part for now: it will be "
"explained later. The actual output can be formatted quite flexibly if you "
"need that; formatting options will also be explained later."
msgstr ""
"affiché dans la console. Le message ``INFO`` n'apparaît pas parce que le "
"niveau par défaut est ``WARNING``. Le message affiché inclut l'indication du "
"niveau et la description de l'évènement fournie dans l'appel à *logging*, "
"ici « Watch out! ». Ne vous préoccupez pas de la partie « *root* » pour le "
"moment : nous détaillerons ce point plus bas. La sortie elle-même peut être "
"formatée de multiples manières si besoin. Les options de formatage seront "
"aussi expliquées plus bas."

#: howto/logging.rst:124
msgid "Logging to a file"
msgstr "Enregistrer les évènements dans un fichier"

#: howto/logging.rst:126
msgid ""
"A very common situation is that of recording logging events in a file, so "
"let's look at that next. Be sure to try the following in a newly-started "
"Python interpreter, and don't just continue from the session described "
"above::"
msgstr ""
"Il est très commun d'enregistrer les évènements dans un fichier, c'est donc "
"ce que nous allons regarder maintenant. Il faut essayer ce qui suit avec un "
"interpréteur Python nouvellement démarré, ne poursuivez pas la session "
"commencée ci-dessus ::"

#: howto/logging.rst:137
msgid ""
"The *encoding* argument was added. In earlier Python versions, or if not "
"specified, the encoding used is the default value used by :func:`open`. "
"While not shown in the above example, an *errors* argument can also now be "
"passed, which determines how encoding errors are handled. For available "
"values and the default, see the documentation for :func:`open`."
msgstr ""
"L'argument *encoding* à été rajouté. Dans les versions précédentes de "
"Python, ou si non spécifié, l'encodage utilisé est la valeur par défaut "
"utilisée par :func:`open`. Bien que non montré dans l'exemple au dessus, un "
"argument **errors** peut aussi être passé, qui détermine comment les erreurs "
"d'encodage sont gérées. Pour voir les valeurs disponibles et par défaut, "
"consultez la documentation de :func:`open`."

#: howto/logging.rst:144
msgid ""
"And now if we open the file and look at what we have, we should find the log "
"messages:"
msgstr ""
"Maintenant, si nous ouvrons le fichier et lisons ce qui s'y trouve, on "
"trouvera les messages de log :"

#: howto/logging.rst:154
msgid ""
"This example also shows how you can set the logging level which acts as the "
"threshold for tracking. In this case, because we set the threshold to "
"``DEBUG``, all of the messages were printed."
msgstr ""
"Cet exemple montre aussi comment on peut régler le niveau de journalisation "
"qui sert de seuil pour le suivi. Dans ce cas, comme nous avons réglé le "
"seuil à ``DEBUG``, tous les messages ont été écrits."

#: howto/logging.rst:158
msgid ""
"If you want to set the logging level from a command-line option such as:"
msgstr ""
"Si vous souhaitez régler le niveau de journalisation à partir d'une option "
"de la ligne de commande comme :"

#: howto/logging.rst:164
msgid ""
"and you have the value of the parameter passed for ``--log`` in some "
"variable *loglevel*, you can use::"
msgstr ""
"et que vous passez ensuite la valeur du paramètre donné à l'option `--log` "
"dans une variable *loglevel*, vous pouvez utiliser ::"

#: howto/logging.rst:169
msgid ""
"to get the value which you'll pass to :func:`basicConfig` via the *level* "
"argument. You may want to error check any user input value, perhaps as in "
"the following example::"
msgstr ""
"de manière à obtenir la valeur à passer à :func:`basicConfig` à travers "
"l'argument *level*. Vous pouvez vérifier que l'utilisateur n'a fait aucune "
"erreur pour la valeur de ce paramètre, comme dans l'exemple ci-dessous ::"

#: howto/logging.rst:181
msgid ""
"The call to :func:`basicConfig` should come *before* any calls to :func:"
"`debug`, :func:`info` etc. As it's intended as a one-off simple "
"configuration facility, only the first call will actually do anything: "
"subsequent calls are effectively no-ops."
msgstr ""
"L'appel à :func:`basicConfig` doit être fait *avant* un appel à :func:"
"`debug`, :func:`info`, etc. Comme l'objectif est d'avoir un outil de "
"configuration simple et d'usage unique, seul le premier appel aura un effet, "
"les appels suivants ne font rien."

#: howto/logging.rst:186
msgid ""
"If you run the above script several times, the messages from successive runs "
"are appended to the file *example.log*. If you want each run to start "
"afresh, not remembering the messages from earlier runs, you can specify the "
"*filemode* argument, by changing the call in the above example to::"
msgstr ""
"Si vous exécutez le script plusieurs fois, les messages des exécutions "
"successives sont ajoutés au fichier *example.log*. Si vous voulez que chaque "
"exécution reprenne un fichier vierge, sans conserver les messages des "
"exécutions précédentes, vous pouvez spécifier l'argument *filemode*, en "
"changeant l'appel à l'exemple précédent par ::"

#: howto/logging.rst:193
msgid ""
"The output will be the same as before, but the log file is no longer "
"appended to, so the messages from earlier runs are lost."
msgstr ""
"La sortie est identique à la précédente, mais le texte n'est plus ajouté au "
"fichier de log, donc les messages des exécutions précédentes sont perdus."

#: howto/logging.rst:198
msgid "Logging from multiple modules"
msgstr "Employer *logging* à partir de différents modules"

#: howto/logging.rst:200
msgid ""
"If your program consists of multiple modules, here's an example of how you "
"could organize logging in it::"
msgstr ""
"Si votre programme est composé de plusieurs modules, voici une façon "
"d'organiser\n"
"l'outil de journalisation ::"

#: howto/logging.rst:224
msgid "If you run *myapp.py*, you should see this in *myapp.log*:"
msgstr "Si vous exécutez *myapp.py*, vous verrez ceci dans *myapp.log* :"

#: howto/logging.rst:232
msgid ""
"which is hopefully what you were expecting to see. You can generalize this "
"to multiple modules, using the pattern in *mylib.py*. Note that for this "
"simple usage pattern, you won't know, by looking in the log file, *where* in "
"your application your messages came from, apart from looking at the event "
"description. If you want to track the location of your messages, you'll need "
"to refer to the documentation beyond the tutorial level -- see :ref:`logging-"
"advanced-tutorial`."
msgstr ""
"ce qui est normalement ce à quoi vous vous attendiez. Vous pouvez "
"généraliser cela à plusieurs modules, en employant le motif de *mylib.py*. "
"Remarquez qu'avec cette méthode simple, vous ne pourrez pas savoir, en "
"lisant le fichier de log, *d'où* viennent les messages dans votre "
"application, sauf dans la description de l'évènement. Si vous voulez suivre "
"la localisation des messages, référez-vous à la documentation avancée :ref:"
"`logging-advanced-tutorial`."

#: howto/logging.rst:242
msgid "Logging variable data"
msgstr "Journalisation de données variables"

#: howto/logging.rst:244
msgid ""
"To log variable data, use a format string for the event description message "
"and append the variable data as arguments. For example::"
msgstr ""
"Pour enregistrer des données variables, utilisez une chaîne formatée dans le "
"message de description de l'évènement et ajoutez les données variables comme "
"argument. Par exemple ::"

#: howto/logging.rst:250
msgid "will display:"
msgstr "affichera :"

#: howto/logging.rst:256
msgid ""
"As you can see, merging of variable data into the event description message "
"uses the old, %-style of string formatting. This is for backwards "
"compatibility: the logging package pre-dates newer formatting options such "
"as :meth:`str.format` and :class:`string.Template`. These newer formatting "
"options *are* supported, but exploring them is outside the scope of this "
"tutorial: see :ref:`formatting-styles` for more information."
msgstr ""
"Comme vous pouvez le voir, l'inclusion des données variables dans le message "
"de description de l'évènement emploie le vieux style de formatage avec %. "
"C'est pour assurer la rétrocompatibilité : le module ``logging`` est "
"antérieur aux nouvelles options de formatage comme :meth:`str.format` ou :"
"class:`string.Template`. Ces nouvelles options de formatage *sont* gérées, "
"mais leur exploration sort du cadre de ce tutoriel, voyez :ref:`formatting-"
"styles` pour plus d'information."

#: howto/logging.rst:265
msgid "Changing the format of displayed messages"
msgstr "Modifier le format du message affiché"

#: howto/logging.rst:267
msgid ""
"To change the format which is used to display messages, you need to specify "
"the format you want to use::"
msgstr ""
"Pour changer le format utilisé pour afficher le message, vous devez préciser "
"le format que vous souhaitez employer ::"

#: howto/logging.rst:276
msgid "which would print:"
msgstr "ce qui affiche :"

#: howto/logging.rst:284
msgid ""
"Notice that the 'root' which appeared in earlier examples has disappeared. "
"For a full set of things that can appear in format strings, you can refer to "
"the documentation for :ref:`logrecord-attributes`, but for simple usage, you "
"just need the *levelname* (severity), *message* (event description, "
"including variable data) and perhaps to display when the event occurred. "
"This is described in the next section."
msgstr ""
"Notez que le ``root`` qui apparaissait dans les exemples précédents a "
"disparu. Pour voir l'ensemble des éléments qui peuvent apparaître dans la "
"chaîne de format, référez-vous à la documentation pour :ref:`logrecord-"
"attributes`. Pour une utilisation simple, vous avez seulement besoin du "
"*levelname* (la sévérité), du *message* (la description de l'évènement, avec "
"les données variables) et peut-être du moment auquel l'évènement a eu lieu. "
"Nous décrivons ces points dans la prochaine section."

#: howto/logging.rst:293
msgid "Displaying the date/time in messages"
msgstr "Afficher l'horodatage dans les messages"

#: howto/logging.rst:295
msgid ""
"To display the date and time of an event, you would place '%(asctime)s' in "
"your format string::"
msgstr ""
"Pour afficher la date ou le temps d'un évènement, ajoutez `%(asctime)` dans "
"votre chaîne de formatage ::"

#: howto/logging.rst:302
msgid "which should print something like this:"
msgstr "ce qui affichera quelque chose comme :"

#: howto/logging.rst:308
msgid ""
"The default format for date/time display (shown above) is like ISO8601 or :"
"rfc:`3339`. If you need more control over the formatting of the date/time, "
"provide a *datefmt* argument to ``basicConfig``, as in this example::"
msgstr ""
"Le format par défaut de l'horodatage (comme ci-dessus) est donné par la "
"norme ISO8601 ou :rfc:`3339`. Pour plus de contrôle sur le formatage de "
"l'horodatage, vous pouvez fournir à ``basicConfig`` un argument *datefmt*, "
"comme dans l'exemple suivant ::"

#: howto/logging.rst:316
msgid "which would display something like this:"
msgstr "ce qui affichera quelque chose comme :"

#: howto/logging.rst:322
msgid ""
"The format of the *datefmt* argument is the same as supported by :func:`time."
"strftime`."
msgstr "Le format de *datefmt* est le même que celui de :func:`time.strftime`."

#: howto/logging.rst:327
msgid "Next Steps"
msgstr "Étapes suivantes"

#: howto/logging.rst:329
msgid ""
"That concludes the basic tutorial. It should be enough to get you up and "
"running with logging. There's a lot more that the logging package offers, "
"but to get the best out of it, you'll need to invest a little more of your "
"time in reading the following sections. If you're ready for that, grab some "
"of your favourite beverage and carry on."
msgstr ""
"Nous concluons ainsi le tutoriel basique. Il devrait suffire à vous mettre "
"le pied à l'étrier pour utiliser ``logging``. Le module ``logging`` a "
"beaucoup d'autre cordes à son arc, mais pour en profiter au maximum, vous "
"devez prendre le temps de lire les sections suivantes. Si vous êtes prêt, "
"servez-vous votre boisson préférée et poursuivons."

#: howto/logging.rst:335
msgid ""
"If your logging needs are simple, then use the above examples to incorporate "
"logging into your own scripts, and if you run into problems or don't "
"understand something, please post a question on the comp.lang.python Usenet "
"group (available at https://groups.google.com/forum/#!forum/comp.lang."
"python) and you should receive help before too long."
msgstr ""
"Si vos besoins avec ``logging`` sont simples, vous pouvez incorporer les "
"exemples ci-dessus dans vos scripts. Si vous rencontrez des difficultés ou "
"s'il y a quelque chose que vous ne comprenez pas, vous pouvez poser une "
"question sur le groupe Usenet ``comp.lang.python`` (accessible à https://"
"groups.google.com/forum/#!forum/comp.lang.python), on vous répondra "
"rapidement."

#: howto/logging.rst:341
msgid ""
"Still here? You can carry on reading the next few sections, which provide a "
"slightly more advanced/in-depth tutorial than the basic one above. After "
"that, you can take a look at the :ref:`logging-cookbook`."
msgstr ""
"Vous êtes encore là ? Vous pouvez lire les prochaines sections, qui donnent "
"un peu plus de détails que l'introduction ci-dessus. Après ça, vous pouvez "
"jeter un œil à :ref:`logging-cookbook`."

#: howto/logging.rst:349
msgid "Advanced Logging Tutorial"
msgstr "Usage avancé de Logging"

#: howto/logging.rst:351
msgid ""
"The logging library takes a modular approach and offers several categories "
"of components: loggers, handlers, filters, and formatters."
msgstr ""
"La bibliothèque de journalisation adopte une approche modulaire et offre "
"différentes catégories de composants : *loggers*, *handlers*, *filters* et "
"*formatters*."

#: howto/logging.rst:354
msgid "Loggers expose the interface that application code directly uses."
msgstr ""
"Les enregistreurs (*loggers* en anglais) exposent l'interface que le code de "
"l'application utilise directement."

#: howto/logging.rst:355
msgid ""
"Handlers send the log records (created by loggers) to the appropriate "
"destination."
msgstr ""
"Les gestionnaires (*handlers*) envoient les entrées de journal (créés par "
"les *loggers*) vers les destinations voulues."

#: howto/logging.rst:357
msgid ""
"Filters provide a finer grained facility for determining which log records "
"to output."
msgstr ""
"Les filtres (*filters*) fournissent un moyen de choisir finement quelles "
"entrées de journal doivent être sorties."

#: howto/logging.rst:359
msgid "Formatters specify the layout of log records in the final output."
msgstr ""
"Les formateurs (*formatters*) spécifient la structure de l'entrée de journal "
"dans la sortie finale."

#: howto/logging.rst:361
msgid ""
"Log event information is passed between loggers, handlers, filters and "
"formatters in a :class:`LogRecord` instance."
msgstr ""
"L'information relative à un événement est passée entre *loggers*, *handlers* "
"et *formatters* dans une instance de la classe :class:`LogRecord`."

#: howto/logging.rst:364
msgid ""
"Logging is performed by calling methods on instances of the :class:`Logger` "
"class (hereafter called :dfn:`loggers`). Each instance has a name, and they "
"are conceptually arranged in a namespace hierarchy using dots (periods) as "
"separators. For example, a logger named 'scan' is the parent of loggers "
"'scan.text', 'scan.html' and 'scan.pdf'. Logger names can be anything you "
"want, and indicate the area of an application in which a logged message "
"originates."
msgstr ""
"La journalisation est réalisée en appelant les méthodes d'instance de la "
"classe :class:`Logger` (que l'on appelle ci-dessous :dfn:`loggers`). Chaque "
"instance a un nom et les instances sont organisées conceptuellement comme "
"des hiérarchies dans l'espace de nommage, en utilisant un point comme "
"séparateur. Par exemple, un *logger* appelé ``scan`` est le parent des "
"*loggers* ``scan.text``, ``scan.html`` et ``scan.pdf``. Les noms des "
"*loggers* peuvent être ce que vous voulez et indiquent le sous-domaine d'une "
"application depuis lequel le message enregistré a été émis."

#: howto/logging.rst:371
msgid ""
"A good convention to use when naming loggers is to use a module-level "
"logger, in each module which uses logging, named as follows::"
msgstr ""
"Une bonne convention lorsqu'on nomme les *loggers* est d'utiliser un "
"*logger* au niveau du module, dans chaque module qui emploie ``logging``, "
"nommé de la façon suivante ::"

#: howto/logging.rst:376
msgid ""
"This means that logger names track the package/module hierarchy, and it's "
"intuitively obvious where events are logged just from the logger name."
msgstr ""
"Cela signifie que le nom d'un *logger* se rapporte à la hiérarchie du paquet "
"et des modules, et il est évident de voir où un événement a été enregistré "
"simplement en regardant le nom du *logger*."

#: howto/logging.rst:379
msgid ""
"The root of the hierarchy of loggers is called the root logger. That's the "
"logger used by the functions :func:`debug`, :func:`info`, :func:`warning`, :"
"func:`error` and :func:`critical`, which just call the same-named method of "
"the root logger. The functions and the methods have the same signatures. The "
"root logger's name is printed as 'root' in the logged output."
msgstr ""
"La racine de la hiérarchie des `loggers` est appelée le *root logger*. C'est "
"le *logger* utilisé par les fonctions :func:`debug`, :func:`info`, :func:"
"`warning`, :func:`error` et :func:`critical`, qui appelle en fait les "
"méthodes du même nom de l'objet *root logger*. Les fonctions et les méthodes "
"ont la même signature. Le nom du *root logger* est affiché comme « `root` » "
"dans la sortie."

#: howto/logging.rst:385
msgid ""
"It is, of course, possible to log messages to different destinations. "
"Support is included in the package for writing log messages to files, HTTP "
"GET/POST locations, email via SMTP, generic sockets, queues, or OS-specific "
"logging mechanisms such as syslog or the Windows NT event log. Destinations "
"are served by :dfn:`handler` classes. You can create your own log "
"destination class if you have special requirements not met by any of the "
"built-in handler classes."
msgstr ""
"Il est bien sûr possible d'enregistrer des messages pour des destinations "
"différentes. Ce paquet permet d'écrire des entrées de journal dans des "
"fichiers, des ressources HTTP GET/POST, par courriel via SMTP, des "
"connecteurs (*socket* en anglais) génériques, des files d'attente, ou des "
"mécanismes d'enregistrement spécifiques au système d'exploitation, comme "
"*syslog* ou le journal d'événements de Windows NT. Les destinations sont "
"servies par des classes :dfn:`handler`. Vous pouvez créer votre propre "
"classe de destination si vous avez des besoins spéciaux qui ne sont couverts "
"par aucune classe *handler* prédéfinie."

#: howto/logging.rst:392
msgid ""
"By default, no destination is set for any logging messages. You can specify "
"a destination (such as console or file) by using :func:`basicConfig` as in "
"the tutorial examples. If you call the functions  :func:`debug`, :func:"
"`info`, :func:`warning`, :func:`error` and :func:`critical`, they will check "
"to see if no destination is set; and if one is not set, they will set a "
"destination of the console (``sys.stderr``) and a default format for the "
"displayed message before delegating to the root logger to do the actual "
"message output."
msgstr ""
"Par défaut, aucune destination n'est prédéfinie pour les messages de "
"journalisation. Vous pouvez définir une destination (comme la console ou un "
"fichier) en utilisant :func:`basicConfig` comme dans les exemples donnés "
"dans le tutoriel. Si vous appelez les fonctions :func:`debug`, :func:"
"`info`, :func:`warning`, :func:`error` et :func:`critical`, celles-ci "
"vérifient si une destination a été définie ; si ce n'est pas le cas, la "
"destination est assignée à la console (``sys.stderr``) avec un format par "
"défaut pour le message affiché, avant d'être déléguée au *logger* racine, "
"qui sort le message."

#: howto/logging.rst:400
msgid "The default format set by :func:`basicConfig` for messages is:"
msgstr ""
"Le format par défaut des messages est défini par :func:`basicConfig` comme "
"suit ::"

#: howto/logging.rst:406
msgid ""
"You can change this by passing a format string to :func:`basicConfig` with "
"the *format* keyword argument. For all options regarding how a format string "
"is constructed, see :ref:`formatter-objects`."
msgstr ""
"Vous pouvez modifier ce comportement en passant une chaîne de formatage à :"
"func:`basicConfig` par l'argument nommé *format*. Consultez :ref:`formatter-"
"objects` pour toutes les options de construction de cette chaîne de "
"formatage."

#: howto/logging.rst:411
msgid "Logging Flow"
msgstr "Flux du processus de journalisation"

#: howto/logging.rst:413
msgid ""
"The flow of log event information in loggers and handlers is illustrated in "
"the following diagram."
msgstr ""
"Le flux des informations associées à un évènement dans les *loggers* et les "
"*handlers* est illustré dans le diagramme suivant."

#: howto/logging.rst:419
msgid "Loggers"
msgstr "Loggers"

#: howto/logging.rst:421
msgid ""
":class:`Logger` objects have a threefold job.  First, they expose several "
"methods to application code so that applications can log messages at "
"runtime. Second, logger objects determine which log messages to act upon "
"based upon severity (the default filtering facility) or filter objects.  "
"Third, logger objects pass along relevant log messages to all interested log "
"handlers."
msgstr ""
"Les objets de classe :class:`Logger` ont un rôle triple. Premièrement, ils "
"exposent plusieurs méthodes au code de l'application, de manière à ce "
"qu'elle puisse enregistrer des messages en cours d'exécution. Deuxièmement, "
"les objets *logger* déterminent sur quel message agir selon leur sévérité (à "
"partir des filtres par défaut) ou selon les objets *filter* associés. "
"Troisièmement, les objets *logger* transmettent les messages pertinents à "
"tous les *handlers* concernés."

#: howto/logging.rst:427
msgid ""
"The most widely used methods on logger objects fall into two categories: "
"configuration and message sending."
msgstr ""
"Les méthodes des objets *logger* les plus utilisées appartiennent à deux "
"catégories : la configuration et l'envoi de messages."

#: howto/logging.rst:430
msgid "These are the most common configuration methods:"
msgstr "Voici les méthodes de configuration les plus communes :"

#: howto/logging.rst:432
msgid ""
":meth:`Logger.setLevel` specifies the lowest-severity log message a logger "
"will handle, where debug is the lowest built-in severity level and critical "
"is the highest built-in severity.  For example, if the severity level is "
"INFO, the logger will handle only INFO, WARNING, ERROR, and CRITICAL "
"messages and will ignore DEBUG messages."
msgstr ""
":meth:`Logger.setLevel` spécifie le plus bas niveau de sévérité qu'un "
"*logger* traitera. Ainsi, ``DEBUG`` est le niveau de sévérité défini par "
"défaut le plus bas et ``CRITICAL`` est le plus haut. Par exemple, si le "
"niveau de sévérité est ``INFO``, le *logger* ne traite que les messages de "
"niveau ``INFO``, ``WARNING``, ``ERROR`` et ``CRITICAL`` ; il ignore les "
"messages de niveau DEBUG."

#: howto/logging.rst:438
msgid ""
":meth:`Logger.addHandler` and :meth:`Logger.removeHandler` add and remove "
"handler objects from the logger object.  Handlers are covered in more detail "
"in :ref:`handler-basic`."
msgstr ""
":meth:`Logger.addHandler` et :meth:`Logger.removeHandler` ajoutent ou "
"enlèvent des objets *handlers* au *logger*. Les objets *handlers* sont "
"expliqués plus en détail dans :ref:`handler-basic`."

#: howto/logging.rst:442
msgid ""
":meth:`Logger.addFilter` and :meth:`Logger.removeFilter` add and remove "
"filter objects from the logger object.  Filters are covered in more detail "
"in :ref:`filter`."
msgstr ""
":meth:`Logger.addFilter` et :meth:`Logger.removeFilter` ajoutent ou enlèvent "
"des objets *filter* au *logger*. Les objets *filters* sont expliqués plus en "
"détail dans :ref:`filter`."

#: howto/logging.rst:446
msgid ""
"You don't need to always call these methods on every logger you create. See "
"the last two paragraphs in this section."
msgstr ""
"Comme nous l'expliquons aux deux derniers paragraphes de cette section, vous "
"n'avez pas besoin de faire appel à ces méthodes à chaque fois que vous créez "
"un *logger*."

#: howto/logging.rst:449
msgid ""
"With the logger object configured, the following methods create log messages:"
msgstr ""
"Une fois que l'objet *logger* est correctement configuré, les méthodes "
"suivantes permettent de créer un message :"

#: howto/logging.rst:451
msgid ""
":meth:`Logger.debug`, :meth:`Logger.info`, :meth:`Logger.warning`, :meth:"
"`Logger.error`, and :meth:`Logger.critical` all create log records with a "
"message and a level that corresponds to their respective method names. The "
"message is actually a format string, which may contain the standard string "
"substitution syntax of ``%s``, ``%d``, ``%f``, and so on.  The rest of their "
"arguments is a list of objects that correspond with the substitution fields "
"in the message.  With regard to ``**kwargs``, the logging methods care only "
"about a keyword of ``exc_info`` and use it to determine whether to log "
"exception information."
msgstr ""
"Les méthodes :meth:`Logger.debug`, :meth:`Logger.info`, :meth:`Logger."
"warning`, :meth:`Logger.error` et :meth:`Logger.critical` créent des entrées "
"de journal avec un message et un niveau correspondant à leur nom. Le message "
"est en fait une chaîne de caractères qui peut contenir la syntaxe standard "
"de substitution de chaînes de caractères : ``%s``, ``%d``, ``%f``, etc. "
"L'argument suivant est une liste des objets correspondant aux champs à "
"substituer dans le message. En ce qui concerne ``**kwargs``, les méthodes de "
"``logging`` ne tiennent compte que du mot clef ``exc_info`` et l'utilisent "
"pour déterminer s'il faut enregistrer les informations associées à une "
"exception."

#: howto/logging.rst:461
msgid ""
":meth:`Logger.exception` creates a log message similar to :meth:`Logger."
"error`.  The difference is that :meth:`Logger.exception` dumps a stack trace "
"along with it.  Call this method only from an exception handler."
msgstr ""
":meth:`Logger.exception` crée un message similaire à :meth:`Logger.error`. "
"La différence est que :meth:`Logger.exception` ajoute la trace de la pile "
"d'exécution au message. On ne peut appeler cette méthode qu'à l'intérieur "
"d'un bloc de gestion d'exception."

#: howto/logging.rst:465
msgid ""
":meth:`Logger.log` takes a log level as an explicit argument.  This is a "
"little more verbose for logging messages than using the log level "
"convenience methods listed above, but this is how to log at custom log "
"levels."
msgstr ""
":meth:`Logger.log` prend le niveau de sévérité comme argument explicite. "
"C'est un peu plus verbeux pour enregistrer des messages que d'utiliser les "
"méthodes plus pratiques décrites si dessus, mais c'est ce qui permet "
"d'enregistrer des messages pour des niveaux de sévérité définis par "
"l'utilisateur."

#: howto/logging.rst:469
msgid ""
":func:`getLogger` returns a reference to a logger instance with the "
"specified name if it is provided, or ``root`` if not.  The names are period-"
"separated hierarchical structures.  Multiple calls to :func:`getLogger` with "
"the same name will return a reference to the same logger object.  Loggers "
"that are further down in the hierarchical list are children of loggers "
"higher up in the list. For example, given a logger with a name of ``foo``, "
"loggers with names of ``foo.bar``, ``foo.bar.baz``, and ``foo.bam`` are all "
"descendants of ``foo``."
msgstr ""
":func:`getLogger` renvoie une référence à un objet *logger* du nom spécifié "
"si celui-ci est donné en argument. Dans le cas contraire, se sera le *logger "
"root*. Ces noms sont des structures hiérarchiques séparées par des points. "
"Des appels répétés à :func:`getLogger` avec le même nom renvoient une "
"référence au même objet *logger*. Les *loggers* qui sont plus bas dans cette "
"liste hiérarchique sont des enfants des *loggers* plus haut dans la liste. "
"Par exemple, si un *logger* a le nom ``foo``, les *loggers* avec les noms "
"``foo.bar``, ``foo.bar.baz``, et ``foo.bam`` sont tous des descendants de "
"``foo``."

#: howto/logging.rst:477
msgid ""
"Loggers have a concept of *effective level*. If a level is not explicitly "
"set on a logger, the level of its parent is used instead as its effective "
"level. If the parent has no explicit level set, *its* parent is examined, "
"and so on - all ancestors are searched until an explicitly set level is "
"found. The root logger always has an explicit level set (``WARNING`` by "
"default). When deciding whether to process an event, the effective level of "
"the logger is used to determine whether the event is passed to the logger's "
"handlers."
msgstr ""
"On associe aux *loggers* un concept de *niveau effectif*. Si aucun niveau "
"n'est explicitement défini pour un *logger*, c'est le niveau du parent qui "
"est utilisé comme niveau effectif. Si le parent n'a pas de niveau défini, "
"c'est celui de *son* parent qui est considéré, et ainsi de suite ; on "
"examine tous les ancêtres jusqu'à ce qu'un niveau explicite soit trouvé. Le "
"*logger root* a toujours un niveau explicite (``WARNING`` par défaut). Quand "
"le *logger* traite un événement, c'est ce niveau effectif qui est utilisé "
"pour déterminer si cet événement est transmis à ses *handlers*."

#: howto/logging.rst:485
msgid ""
"Child loggers propagate messages up to the handlers associated with their "
"ancestor loggers. Because of this, it is unnecessary to define and configure "
"handlers for all the loggers an application uses. It is sufficient to "
"configure handlers for a top-level logger and create child loggers as "
"needed. (You can, however, turn off propagation by setting the *propagate* "
"attribute of a logger to ``False``.)"
msgstr ""
"Les *loggers* fils font remonter leurs messages aux *handlers* associés à "
"leurs *loggers* parents. De ce fait, il n'est pas nécessaire de définir et "
"configurer des *handlers* pour tous les *loggers* employés par une "
"application. Il suffit de configurer les *handlers* pour un *logger* de haut "
"niveau et de créer des *loggers* fils quand c'est nécessaire (on peut "
"cependant empêcher la propagation aux ancêtres des messages en donnant la "
"valeur ``False`` à l'attribut *propagate* d'un *logger*)."

#: howto/logging.rst:496
msgid "Handlers"
msgstr "Handlers"

#: howto/logging.rst:498
msgid ""
":class:`~logging.Handler` objects are responsible for dispatching the "
"appropriate log messages (based on the log messages' severity) to the "
"handler's specified destination.  :class:`Logger` objects can add zero or "
"more handler objects to themselves with an :meth:`~Logger.addHandler` "
"method.  As an example scenario, an application may want to send all log "
"messages to a log file, all log messages of error or higher to stdout, and "
"all messages of critical to an email address. This scenario requires three "
"individual handlers where each handler is responsible for sending messages "
"of a specific severity to a specific location."
msgstr ""
"Les objets de type :class:`~logging.Handler` sont responsables de la "
"distribution des messages (selon leur niveau de sévérité) vers les "
"destinations spécifiées pour ce *handler*. Les objets :class:`Logger` "
"peuvent ajouter des objets *handler* à eux-mêmes en appelant :meth:`~Logger."
"addHandler`. Pour donner un exemple, une application peut envoyer tous les "
"messages dans un fichier journal, tous les messages de niveau ``ERROR`` ou "
"supérieur vers la sortie standard, et tous les messages de niveau "
"``CRITICAL`` vers une adresse de courriel. Dans ce scénario, nous avons "
"besoin de trois *handlers*, responsable chacun d'envoyer des messages d'une "
"sévérité donnée vers une destination donnée."

#: howto/logging.rst:508
msgid ""
"The standard library includes quite a few handler types (see :ref:`useful-"
"handlers`); the tutorials use mainly :class:`StreamHandler` and :class:"
"`FileHandler` in its examples."
msgstr ""
"La bibliothèque standard inclut déjà un bon nombre de types de gestionnaires "
"(voir :ref:`useful-handlers`) ; le tutoriel utilise surtout :class:"
"`StreamHandler` et :class:`FileHandler` dans ses exemples."

#: howto/logging.rst:512
msgid ""
"There are very few methods in a handler for application developers to "
"concern themselves with.  The only handler methods that seem relevant for "
"application developers who are using the built-in handler objects (that is, "
"not creating custom handlers) are the following configuration methods:"
msgstr ""
"Peu de méthodes des objets *handlers* sont intéressantes pour les "
"développeurs. Les seules méthodes intéressantes lorsqu'on utilise les objets "
"*handlers* natifs (c'est à dire si l'on ne crée pas de *handler* "
"personnalisé) sont les méthodes de configuration suivantes :"

#: howto/logging.rst:517
msgid ""
"The :meth:`~Handler.setLevel` method, just as in logger objects, specifies "
"the lowest severity that will be dispatched to the appropriate destination.  "
"Why are there two :func:`setLevel` methods?  The level set in the logger "
"determines which severity of messages it will pass to its handlers.  The "
"level set in each handler determines which messages that handler will send "
"on."
msgstr ""
"La méthode :meth:`~Handler.setLevel`, comme celle des objets *logger* permet "
"de spécifier le plus bas niveau de sévérité qui sera distribué à la "
"destination appropriée. Pourquoi y a-t-il deux méthodes :func:`setLevel` ? "
"Le niveau défini dans le *logger* détermine quelle sévérité doit avoir un "
"message pour être transmis à ses *handlers*. Le niveau mis pour chaque "
"*handler* détermine quels messages seront envoyés aux destinations."

#: howto/logging.rst:523
msgid ""
":meth:`~Handler.setFormatter` selects a Formatter object for this handler to "
"use."
msgstr ""
":meth:`~Handler.setFormatter` sélectionne l'objet ``Formatter`` utilisé par "
"ce ``handler``."

#: howto/logging.rst:526
msgid ""
":meth:`~Handler.addFilter` and :meth:`~Handler.removeFilter` respectively "
"configure and deconfigure filter objects on handlers."
msgstr ""
":meth:`~Handler.addFilter` et :meth:`~Handler.removeFilter` configurent et "
"respectivement dé-configurent des objets *filter* sur les *handlers*."

#: howto/logging.rst:529
msgid ""
"Application code should not directly instantiate and use instances of :class:"
"`Handler`.  Instead, the :class:`Handler` class is a base class that defines "
"the interface that all handlers should have and establishes some default "
"behavior that child classes can use (or override)."
msgstr ""
"Le code d'une application ne devrait ni instancier, ni utiliser d'instances "
"de la classe :class:`Handler`. La classe :class:`Handler` est plutôt d'une "
"classe de base qui définit l'interface que tous les gestionnaires doivent "
"avoir et établit les comportements par défaut que les classes filles peuvent "
"employer (ou redéfinir)."

#: howto/logging.rst:536
msgid "Formatters"
msgstr "Formatters"

#: howto/logging.rst:538
msgid ""
"Formatter objects configure the final order, structure, and contents of the "
"log message.  Unlike the base :class:`logging.Handler` class, application "
"code may instantiate formatter classes, although you could likely subclass "
"the formatter if your application needs special behavior.  The constructor "
"takes three optional arguments -- a message format string, a date format "
"string and a style indicator."
msgstr ""
"Les objets *formatter* configurent l'ordre final, la structure et le contenu "
"du message. Contrairement à la classe de base :class:`logging.Handler`, le "
"code d'une application peut instancier un objet de classe *formatter*, même "
"si vous pouvez toujours sous-classer *formatter* si vous avez besoin d'un "
"comportement spécial dans votre application. Le constructeur a trois "
"arguments optionnels : une chaîne de formatage du message, un chaîne de "
"formatage de la date et un indicateur de style."

#: howto/logging.rst:547
msgid ""
"If there is no message format string, the default is to use the raw "
"message.  If there is no date format string, the default date format is:"
msgstr ""
"S'il n'y a pas de chaîne de formatage, la chaîne brute est utilisée par "
"défaut. S'il n'y a pas de chaîne de formatage de date, le format de date par "
"défaut est :"

#: howto/logging.rst:554
msgid ""
"with the milliseconds tacked on at the end. The ``style`` is one of `%`, '{' "
"or '$'. If one of these is not specified, then '%' will be used."
msgstr ""
"avec les millisecondes en suffixe. Le ``style`` est `%`, `{` ou `$`. Si "
"aucun n'est spécifié, `%` sera utilisé."

#: howto/logging.rst:557
msgid ""
"If the ``style`` is '%', the message format string uses ``%(<dictionary "
"key>)s`` styled string substitution; the possible keys are documented in :"
"ref:`logrecord-attributes`. If the style is '{', the message format string "
"is assumed to be compatible with :meth:`str.format` (using keyword "
"arguments), while if the style is '$' then the message format string should "
"conform to what is expected by :meth:`string.Template.substitute`."
msgstr ""
"Si l'argument ``style`` est `%`, la chaîne de formatage utilise ``%(<clef de "
"dictionnaire>)s`` comme style de substitution de chaîne de caractères ; les "
"clefs possibles sont documentées dans :ref:`logrecord-attributes`. Si le "
"style est `{`, le message de la chaîne de formatage est compatible avec :"
"meth:`str.format` (en employant des arguments à mots clefs). Enfin si le "
"style est `$` alors la chaîne de formatage du message doit être conforme à "
"ce qui est attendu de :meth:`string.Template.substitute`."

#: howto/logging.rst:564
msgid "Added the ``style`` parameter."
msgstr "Ajout du paramètre ``style``."

#: howto/logging.rst:567
msgid ""
"The following message format string will log the time in a human-readable "
"format, the severity of the message, and the contents of the message, in "
"that order::"
msgstr ""
"La chaîne de formatage de message suivante enregistrera le temps dans un "
"format lisible par les humains, la sévérité du message et son contenu, dans "
"cet ordre ::"

#: howto/logging.rst:573
msgid ""
"Formatters use a user-configurable function to convert the creation time of "
"a record to a tuple. By default, :func:`time.localtime` is used; to change "
"this for a particular formatter instance, set the ``converter`` attribute of "
"the instance to a function with the same signature as :func:`time.localtime` "
"or :func:`time.gmtime`. To change it for all formatters, for example if you "
"want all logging times to be shown in GMT, set the ``converter`` attribute "
"in the Formatter class (to ``time.gmtime`` for GMT display)."
msgstr ""
"Les *formatters* emploient une fonction configurable par l'utilisateur pour "
"convertir le temps de création d'une entrée de journal en un *n*-uplet. Par "
"défaut, :func:`time.localtime` est employé ; pour changer cela pour une "
"instance particulière de *formatter*, assignez une fonction avec la même "
"signature que :func:`time.localtime` ou :func:`time.gmtime` à l'attribut "
"``converter`` de cette instance. Pour changer cela pour tous les "
"*formatters*, par exemple si vous voulez que tous votre horodatage soit "
"affiché en GMT, changez l'attribut ``converter`` de la classe ``Formatter`` "
"en ``time.gmtime``."

#: howto/logging.rst:583
msgid "Configuring Logging"
msgstr "Configuration de ``logging``"

#: howto/logging.rst:587
msgid "Programmers can configure logging in three ways:"
msgstr "On peut configurer ``logging`` de trois façons :"

#: howto/logging.rst:589
msgid ""
"Creating loggers, handlers, and formatters explicitly using Python code that "
"calls the configuration methods listed above."
msgstr ""
"Créer des *loggers*, *handlers* et *formatters* explicitement en utilisant "
"du code Python qui appelle les méthodes de configuration listées ci-dessus."

#: howto/logging.rst:591
msgid ""
"Creating a logging config file and reading it using the :func:`fileConfig` "
"function."
msgstr ""
"Créer un fichier de configuration de ``logging`` et le lire en employant la "
"fonction :func:`fileConfig`."

#: howto/logging.rst:593
msgid ""
"Creating a dictionary of configuration information and passing it to the :"
"func:`dictConfig` function."
msgstr ""
"Créer un dictionnaire d'informations de configuration et le passer à la "
"fonction :func:`dictConfig`."

#: howto/logging.rst:596
msgid ""
"For the reference documentation on the last two options, see :ref:`logging-"
"config-api`.  The following example configures a very simple logger, a "
"console handler, and a simple formatter using Python code::"
msgstr ""
"Pour la documentation de référence de ces deux dernières options, voyez :ref:"
"`logging-config-api`. L'exemple suivant configure un *logger* très simple, "
"un *handler* employant la console, et un *formatter* simple en utilisant du "
"code Python ::"

#: howto/logging.rst:626
msgid ""
"Running this module from the command line produces the following output:"
msgstr ""
"L'exécution de ce module via la ligne de commande produit la sortie "
"suivante :"

#: howto/logging.rst:637
msgid ""
"The following Python module creates a logger, handler, and formatter nearly "
"identical to those in the example listed above, with the only difference "
"being the names of the objects::"
msgstr ""
"Le module Python suivant crée un *logger*, un *handler* et un *formatter* "
"identiques à ceux de l'exemple détaillé au-dessus, au nom des objets près ::"

#: howto/logging.rst:656
msgid "Here is the logging.conf file:"
msgstr "Voici le fichier *logging.conf* :"

#: howto/logging.rst:688
msgid ""
"The output is nearly identical to that of the non-config-file-based example:"
msgstr ""
"La sortie est presque identique à celle de l'exemple qui n'est pas basé sur "
"un fichier de configuration :"

#: howto/logging.rst:699
msgid ""
"You can see that the config file approach has a few advantages over the "
"Python code approach, mainly separation of configuration and code and the "
"ability of noncoders to easily modify the logging properties."
msgstr ""
"Vous pouvez constatez les avantages de l'approche par fichier de "
"configuration par rapport à celle du code Python, principalement la "
"séparation de la configuration et du code, et la possibilité pour une "
"personne qui ne code pas de modifier facilement les propriétés de "
"``logging``."

#: howto/logging.rst:703
msgid ""
"The :func:`fileConfig` function takes a default parameter, "
"``disable_existing_loggers``, which defaults to ``True`` for reasons of "
"backward compatibility. This may or may not be what you want, since it will "
"cause any non-root loggers existing before the :func:`fileConfig` call to be "
"disabled unless they (or an ancestor) are explicitly named in the "
"configuration. Please refer to the reference documentation for more "
"information, and specify ``False`` for this parameter if you wish."
msgstr ""
"La fonction :func:`fileConfig` accepte un paramètre par défaut "
"``disable_existing_loggers``, qui vaut ``True`` par défaut pour des raisons "
"de compatibilité ascendante. Ce n'est pas forcément ce que vous souhaitez : "
"en effet, tous les *loggers* créés avant l'appel à :func:`fileConfig` seront "
"désactivés sauf si eux-mêmes (ou l'un de leurs parents) sont explicitement "
"nommés dans le fichier de configuration. Veuillez vous rapporter à la "
"documentation pour plus de détails, et donner la valeur ``False`` à ce "
"paramètre si vous le souhaitez."

#: howto/logging.rst:711
msgid ""
"The dictionary passed to :func:`dictConfig` can also specify a Boolean value "
"with key ``disable_existing_loggers``, which if not specified explicitly in "
"the dictionary also defaults to being interpreted as ``True``. This leads to "
"the logger-disabling behaviour described above, which may not be what you "
"want - in which case, provide the key explicitly with a value of ``False``."
msgstr ""
"Le dictionnaire passé à :func:`dictConfig` peut aussi spécifier une valeur "
"Booléenne pour la clef ``disable_existing_loggers``. Si cette valeur n'est "
"pas donnée, elle est interprétée comme vraie par défaut. Cela conduit au "
"comportement de désactivation des *loggers* décrit ci-dessus, qui n'est pas "
"forcément celui que vous souhaitez ; dans ce cas, donnez explicitement la "
"valeur ``False`` à cette clef."

#: howto/logging.rst:721
msgid ""
"Note that the class names referenced in config files need to be either "
"relative to the logging module, or absolute values which can be resolved "
"using normal import mechanisms. Thus, you could use either :class:`~logging."
"handlers.WatchedFileHandler` (relative to the logging module) or ``mypackage."
"mymodule.MyHandler`` (for a class defined in package ``mypackage`` and "
"module ``mymodule``, where ``mypackage`` is available on the Python import "
"path)."
msgstr ""
"Notez que les noms de classe référencés dans le fichier de configuration "
"doivent être relatifs au module ``logging``, ou des valeurs absolues qui "
"peuvent être résolues à travers les mécanismes d'importation habituels. "
"Ainsi, on peut soit utiliser :class:`~logging.handlers.WatchedFileHandler` "
"(relativement au module ``logging``) ou ``mypackage.mymodule.MyHandler`` "
"(pour une classe définie dans le paquet ``mypackage`` et le module "
"``mymodule``, si ``mypackage`` est disponible dans les chemins d'importation "
"de Python)."

#: howto/logging.rst:729
msgid ""
"In Python 3.2, a new means of configuring logging has been introduced, using "
"dictionaries to hold configuration information. This provides a superset of "
"the functionality of the config-file-based approach outlined above, and is "
"the recommended configuration method for new applications and deployments. "
"Because a Python dictionary is used to hold configuration information, and "
"since you can populate that dictionary using different means, you have more "
"options for configuration. For example, you can use a configuration file in "
"JSON format, or, if you have access to YAML processing functionality, a file "
"in YAML format, to populate the configuration dictionary. Or, of course, you "
"can construct the dictionary in Python code, receive it in pickled form over "
"a socket, or use whatever approach makes sense for your application."
msgstr ""
"Dans Python 3.2, un nouveau moyen de configuration de la journalisation a "
"été introduit, à l'aide de dictionnaires pour contenir les informations de "
"configuration. Cela fournit un sur-ensemble de la fonctionnalité décrite ci-"
"dessus basée sur un fichier de configuration et c’est la méthode recommandée "
"pour les nouvelles applications et les déploiements. Étant donné qu'un "
"dictionnaire Python est utilisé pour contenir des informations de "
"configuration et que vous pouvez remplir ce dictionnaire à l'aide de "
"différents moyens, vous avez plus d'options pour la configuration. Par "
"exemple, vous pouvez utiliser un fichier de configuration au format JSON ou, "
"si vous avez accès à la fonctionnalité de traitement YAML, un fichier au "
"format YAML, pour remplir le dictionnaire de configuration. Ou bien sûr, "
"vous pouvez construire le dictionnaire dans le code Python, le recevoir sous "
"forme de *pickle* sur un connecteur, ou utiliser n'importe quelle approche "
"suivant la logique de votre application."

#: howto/logging.rst:741
msgid ""
"Here's an example of the same configuration as above, in YAML format for the "
"new dictionary-based approach:"
msgstr ""
"Voici un exemple définissant la même configuration que ci-dessus, au format "
"YAML  pour le dictionnaire correspondant à cette nouvelle approche :"

#: howto/logging.rst:765
msgid ""
"For more information about logging using a dictionary, see :ref:`logging-"
"config-api`."
msgstr ""
"Pour plus d'informations sur la journalisation à l'aide d'un dictionnaire, "
"consultez :ref:`logging-config-api`."

#: howto/logging.rst:769
msgid "What happens if no configuration is provided"
msgstr "Comportement par défaut (si aucune configuration n'est fournie)"

#: howto/logging.rst:771
msgid ""
"If no logging configuration is provided, it is possible to have a situation "
"where a logging event needs to be output, but no handlers can be found to "
"output the event. The behaviour of the logging package in these "
"circumstances is dependent on the Python version."
msgstr ""
"Si aucune configuration de journalisation n'est fournie, il est possible "
"d'avoir une situation où un événement doit faire l'objet d'une "
"journalisation, mais où aucun gestionnaire ne peut être trouvé pour tracer "
"l'événement. Le comportement du paquet ```logging``` dans ces circonstances "
"dépend de la version Python."

#: howto/logging.rst:776
msgid "For versions of Python prior to 3.2, the behaviour is as follows:"
msgstr ""
"Pour les versions de Python antérieures à 3.2, le comportement est le "
"suivant :"

#: howto/logging.rst:778
msgid ""
"If *logging.raiseExceptions* is ``False`` (production mode), the event is "
"silently dropped."
msgstr ""
"Si *logging.raiseExceptions* vaut ``False`` (mode production), l’événement "
"est silencieusement abandonné."

#: howto/logging.rst:781
msgid ""
"If *logging.raiseExceptions* is ``True`` (development mode), a message 'No "
"handlers could be found for logger X.Y.Z' is printed once."
msgstr ""
"Si *logging.raiseExceptions* vaut ``True`` (mode de développement), un "
"message *No handlers could be found for logger X.Y.Z* est écrit sur la "
"sortie standard une fois."

#: howto/logging.rst:784
msgid "In Python 3.2 and later, the behaviour is as follows:"
msgstr "Dans Python 3.2 et ultérieur, le comportement est le suivant :"

#: howto/logging.rst:786
msgid ""
"The event is output using a 'handler of last resort', stored in ``logging."
"lastResort``. This internal handler is not associated with any logger, and "
"acts like a :class:`~logging.StreamHandler` which writes the event "
"description message to the current value of ``sys.stderr`` (therefore "
"respecting any redirections which may be in effect). No formatting is done "
"on the message - just the bare event description message is printed. The "
"handler's level is set to ``WARNING``, so all events at this and greater "
"severities will be output."
msgstr ""
"L'événement est sorti à l'aide d'un « gestionnaire de dernier recours », "
"stocké dans ``logging.lastResort``. Ce gestionnaire interne n'est associé à "
"aucun enregistreur et agit comme un :class:`~logging.StreamHandler` qui "
"écrit le message de description de l'événement vers la valeur actuelle de "
"``sys.stderr`` (par conséquent, en respectant les redirections qui peuvent "
"être en vigueur). Aucun formatage n'est fait sur le message – juste le "
"message de description de l'événement nu est affiché. Le niveau du "
"gestionnaire est défini sur ``WARNING``, de sorte que tous les événements de "
"cette sévérité et plus seront écrits."

#: howto/logging.rst:795
msgid ""
"To obtain the pre-3.2 behaviour, ``logging.lastResort`` can be set to "
"``None``."
msgstr ""
"Pour obtenir un comportement antérieur à 3.2, ``logging.lastResort`` peut "
"être mis à ``None``."

#: howto/logging.rst:800
msgid "Configuring Logging for a Library"
msgstr "Configuration de la journalisation pour une bibliothèque"

#: howto/logging.rst:802
msgid ""
"When developing a library which uses logging, you should take care to "
"document how the library uses logging - for example, the names of loggers "
"used. Some consideration also needs to be given to its logging "
"configuration. If the using application does not use logging, and library "
"code makes logging calls, then (as described in the previous section) events "
"of severity ``WARNING`` and greater will be printed to ``sys.stderr``. This "
"is regarded as the best default behaviour."
msgstr ""
"Lors du développement d'une bibliothèque qui utilise la journalisation, vous "
"devez prendre soin de documenter la façon dont la bibliothèque utilise la "
"journalisation (par exemple, les noms des enregistreurs utilisés). Consacrez "
"aussi un peu de temps à la configuration de la journalisation. Si "
"l'application utilisant votre bibliothèque n'utilise pas la journalisation "
"et que le code de la bibliothèque effectue des appels de journalisation, "
"alors (comme décrit dans la section précédente), les événements de gravité "
"``WARNING`` et au-dessus seront écrits sur ``sys.stderr``. Cela est "
"considéré comme le meilleur comportement par défaut."

#: howto/logging.rst:810
msgid ""
"If for some reason you *don't* want these messages printed in the absence of "
"any logging configuration, you can attach a do-nothing handler to the top-"
"level logger for your library. This avoids the message being printed, since "
"a handler will always be found for the library's events: it just doesn't "
"produce any output. If the library user configures logging for application "
"use, presumably that configuration will add some handlers, and if levels are "
"suitably configured then logging calls made in library code will send output "
"to those handlers, as normal."
msgstr ""
"Si, pour une raison quelconque, vous ne voulez *pas* que ces messages soient "
"affichés en l'absence de toute configuration de journalisation, vous pouvez "
"attacher un gestionnaire *ne-fait-rien* à l'enregistreur de niveau supérieur "
"de votre bibliothèque. Cela évite qu’un message ne soit écrit, puisqu’un "
"gestionnaire sera toujours trouvé pour les événements de la bibliothèque, il "
"ne produit tout simplement pas de sortie. Si celui qui utilise la "
"bibliothèque configure la journalisation pour son application, il est "
"vraisemblable que la configuration ajoutera certains gestionnaires et, si "
"les niveaux sont convenablement configurés, alors la journalisation des "
"appels effectués dans le code de bibliothèque enverra la sortie à ces "
"gestionnaires, comme d'habitude."

#: howto/logging.rst:819
msgid ""
"A do-nothing handler is included in the logging package: :class:`~logging."
"NullHandler` (since Python 3.1). An instance of this handler could be added "
"to the top-level logger of the logging namespace used by the library (*if* "
"you want to prevent your library's logged events being output to ``sys."
"stderr`` in the absence of logging configuration). If all logging by a "
"library *foo* is done using loggers with names matching 'foo.x', 'foo.x.y', "
"etc. then the code::"
msgstr ""
"Un gestionnaire *ne-fait-rien* est inclus dans le paquet de "
"journalisation : :class:`~logging.NullHandler` (depuis Python 3.1). Une "
"instance de ce gestionnaire peut être ajoutée à l'enregistreur de niveau "
"supérieur de l'espace de nommage de journalisation utilisé par la "
"bibliothèque (*si* vous souhaitez empêcher la copie de la journalisation de "
"votre bibliothèque dans ``sys.stderr`` en l'absence de configuration de "
"journalisation). Si toute la journalisation par une bibliothèque *foo* est "
"effectuée en utilisant des enregistreurs avec des noms correspondant à *foo."
"x*, *foo.x.y*, etc., alors le code ::"

#: howto/logging.rst:830
msgid ""
"should have the desired effect. If an organisation produces a number of "
"libraries, then the logger name specified can be 'orgname.foo' rather than "
"just 'foo'."
msgstr ""
"doit avoir l'effet désiré. Si une organisation produit un certain nombre de "
"bibliothèques, le nom de l'enregistreur spécifié peut être ``orgname.foo`` "
"plutôt que simplement ``foo``."

#: howto/logging.rst:834
msgid ""
"It is strongly advised that you *do not log to the root logger* in your "
"library. Instead, use a logger with a unique and easily identifiable name, "
"such as the ``__name__`` for your library's top-level package or module. "
"Logging to the root logger will make it difficult or impossible for the "
"application developer to configure the logging verbosity or handlers of your "
"library as they wish."
msgstr ""

#: howto/logging.rst:841
msgid ""
"It is strongly advised that you *do not add any handlers other than* :class:"
"`~logging.NullHandler` *to your library's loggers*. This is because the "
"configuration of handlers is the prerogative of the application developer "
"who uses your library. The application developer knows their target audience "
"and what handlers are most appropriate for their application: if you add "
"handlers 'under the hood', you might well interfere with their ability to "
"carry out unit tests and deliver logs which suit their requirements."
msgstr ""
"Il est vivement conseillé de ne *pas ajouter de gestionnaires autres que* :"
"class:`~logging.NullHandler` *aux enregistreurs de votre bibliothèque*. Cela "
"est dû au fait que la configuration des gestionnaires est la prérogative du "
"développeur d'applications qui utilise votre bibliothèque. Le développeur "
"d'applications connaît le public cible et les gestionnaires les plus "
"appropriés pour ses applications : si vous ajoutez des gestionnaires « sous "
"le manteau », vous pourriez bien interférer avec les tests unitaires et la "
"journalisation qui convient à ses exigences."

#: howto/logging.rst:852
msgid "Logging Levels"
msgstr "Niveaux de journalisation"

#: howto/logging.rst:854
msgid ""
"The numeric values of logging levels are given in the following table. These "
"are primarily of interest if you want to define your own levels, and need "
"them to have specific values relative to the predefined levels. If you "
"define a level with the same numeric value, it overwrites the predefined "
"value; the predefined name is lost."
msgstr ""
"Les valeurs numériques des niveaux de journalisation sont données dans le "
"tableau suivant. Celles-ci n'ont d'intérêt que si vous voulez définir vos "
"propres niveaux, avec des valeurs spécifiques par rapport aux niveaux "
"prédéfinis. Si vous définissez un niveau avec la même valeur numérique, il "
"écrase la valeur prédéfinie ; le nom prédéfini est perdu."

#: howto/logging.rst:861
msgid "Numeric value"
msgstr "Valeur numérique"

#: howto/logging.rst:863
msgid "50"
msgstr "50"

#: howto/logging.rst:865
msgid "40"
msgstr "40"

#: howto/logging.rst:867
msgid "30"
msgstr "30"

#: howto/logging.rst:869
msgid "20"
msgstr "20"

#: howto/logging.rst:871
msgid "10"
msgstr "10"

#: howto/logging.rst:873
msgid "``NOTSET``"
msgstr "``NOTSET``"

#: howto/logging.rst:873
msgid "0"
msgstr "0"

#: howto/logging.rst:876
msgid ""
"Levels can also be associated with loggers, being set either by the "
"developer or through loading a saved logging configuration. When a logging "
"method is called on a logger, the logger compares its own level with the "
"level associated with the method call. If the logger's level is higher than "
"the method call's, no logging message is actually generated. This is the "
"basic mechanism controlling the verbosity of logging output."
msgstr ""
"Les niveaux peuvent également être associés à des enregistreurs, étant "
"définis soit par le développeur, soit par le chargement d'une configuration "
"de journalisation enregistrée. Lorsqu'une méthode de journalisation est "
"appelée sur un enregistreur, l'enregistreur compare son propre niveau avec "
"le niveau associé à l'appel de méthode. Si le niveau de l'enregistreur est "
"supérieur à l'appel de méthode, aucun message de journalisation n'est "
"réellement généré. C'est le mécanisme de base contrôlant la verbosité de la "
"sortie de journalisation."

#: howto/logging.rst:883
msgid ""
"Logging messages are encoded as instances of the :class:`~logging.LogRecord` "
"class. When a logger decides to actually log an event, a :class:`~logging."
"LogRecord` instance is created from the logging message."
msgstr ""
"Les messages de journalisation sont codés en tant qu'instances de :class:"
"`~logging.LogRecord`. Lorsqu'un enregistreur décide de réellement "
"enregistrer un événement, une instance de :class:`~logging.LogRecord` est "
"créée à partir du message de journalisation."

#: howto/logging.rst:887
msgid ""
"Logging messages are subjected to a dispatch mechanism through the use of :"
"dfn:`handlers`, which are instances of subclasses of the :class:`Handler` "
"class. Handlers are responsible for ensuring that a logged message (in the "
"form of a :class:`LogRecord`) ends up in a particular location (or set of "
"locations) which is useful for the target audience for that message (such as "
"end users, support desk staff, system administrators, developers). Handlers "
"are passed :class:`LogRecord` instances intended for particular "
"destinations. Each logger can have zero, one or more handlers associated "
"with it (via the :meth:`~Logger.addHandler` method of :class:`Logger`). In "
"addition to any handlers directly associated with a logger, *all handlers "
"associated with all ancestors of the logger* are called to dispatch the "
"message (unless the *propagate* flag for a logger is set to a false value, "
"at which point the passing to ancestor handlers stops)."
msgstr ""
"Les messages de journalisation sont soumis à un mécanisme d'expédition via "
"l'utilisation de :dfn:`handlers`, qui sont des instances de sous-classes de "
"la classe :class:`Handler`. Les gestionnaires sont chargés de s'assurer "
"qu'un message journalisé (sous la forme d'un :class:`LogRecord`) atterrit "
"dans un emplacement particulier (ou un ensemble d'emplacements) qui est "
"utile pour le public cible pour ce message (tels que les utilisateurs "
"finaux, le personnel chargé de l'assistance aux utilisateurs, les "
"administrateurs système ou les développeurs). Des instances de :class:"
"`LogRecord` adaptées à leur destination finale sont passées aux "
"gestionnaires destinées à des destinations particulières. Chaque "
"enregistreur peut avoir zéro, un ou plusieurs gestionnaires associés à celui-"
"ci (via la méthode :meth:`~Logger.addHandler` de :class:`Logger`). En plus "
"de tous les gestionnaires directement associés à un enregistreur, *tous les "
"gestionnaires associés à tous les ancêtres de l'enregistreur* sont appelés "
"pour envoyer le message (à moins que l'indicateur *propager* pour un "
"enregistreur soit défini sur la valeur ``False``, auquel cas le passage à "
"l'ancêtre gestionnaires s'arrête)."

#: howto/logging.rst:901
msgid ""
"Just as for loggers, handlers can have levels associated with them. A "
"handler's level acts as a filter in the same way as a logger's level does. "
"If a handler decides to actually dispatch an event, the :meth:`~Handler."
"emit` method is used to send the message to its destination. Most user-"
"defined subclasses of :class:`Handler` will need to override this :meth:"
"`~Handler.emit`."
msgstr ""
"Tout comme pour les enregistreurs, les gestionnaires peuvent avoir des "
"niveaux associés. Le niveau d'un gestionnaire agit comme un filtre de la "
"même manière que le niveau d'un enregistreur. Si un gestionnaire décide de "
"réellement distribuer un événement, la méthode :meth:`~Handler.emit` est "
"utilisée pour envoyer le message à sa destination. La plupart des sous-"
"classes définies par l'utilisateur de :class:`Handler` devront remplacer ce :"
"meth:`~Handler.emit`."

#: howto/logging.rst:910
msgid "Custom Levels"
msgstr "Niveaux personnalisés"

#: howto/logging.rst:912
msgid ""
"Defining your own levels is possible, but should not be necessary, as the "
"existing levels have been chosen on the basis of practical experience. "
"However, if you are convinced that you need custom levels, great care should "
"be exercised when doing this, and it is possibly *a very bad idea to define "
"custom levels if you are developing a library*. That's because if multiple "
"library authors all define their own custom levels, there is a chance that "
"the logging output from such multiple libraries used together will be "
"difficult for the using developer to control and/or interpret, because a "
"given numeric value might mean different things for different libraries."
msgstr ""
"La définition de vos propres niveaux est possible, mais ne devrait pas être "
"nécessaire, car les niveaux existants ont été choisis par expérience. "
"Cependant, si vous êtes convaincu que vous avez besoin de niveaux "
"personnalisés, prenez grand soin à leur réalisation et il est pratiquement "
"certain que c’est *une très mauvaise idée de définir des niveaux "
"personnalisés si vous développez une bibliothèque*. Car si plusieurs auteurs "
"de bibliothèque définissent tous leurs propres niveaux personnalisés, il y a "
"une chance que la sortie de journalisation de ces multiples bibliothèques "
"utilisées ensemble sera difficile pour le développeur à utiliser pour "
"contrôler et/ou interpréter, car une valeur numérique donnée peut signifier "
"des choses différentes pour différentes bibliothèques."

#: howto/logging.rst:925
msgid "Useful Handlers"
msgstr "Gestionnaires utiles"

#: howto/logging.rst:927
msgid ""
"In addition to the base :class:`Handler` class, many useful subclasses are "
"provided:"
msgstr ""
"En plus de la classe de base :class:`Handler`, de nombreuses sous-classes "
"utiles sont fournies :"

#: howto/logging.rst:930
msgid ""
":class:`StreamHandler` instances send messages to streams (file-like "
"objects)."
msgstr ""
"Les instances :class:`StreamHandler` envoient des messages aux flux (objets "
"de type fichier)."

#: howto/logging.rst:933
msgid ":class:`FileHandler` instances send messages to disk files."
msgstr ""
"Les instances :class:`FileHandler` envoient des messages à des fichiers sur "
"le disque."

#: howto/logging.rst:935
msgid ""
":class:`~handlers.BaseRotatingHandler` is the base class for handlers that "
"rotate log files at a certain point. It is not meant to be  instantiated "
"directly. Instead, use :class:`~handlers.RotatingFileHandler` or :class:"
"`~handlers.TimedRotatingFileHandler`."
msgstr ""
":class:`~handlers.BaseRotatingHandler` est la classe de base pour les "
"gestionnaires qui assurent la rotation des fichiers de journalisation à "
"partir d’un certain point. Elle n'est pas destinée à être instanciée "
"directement. Utilisez plutôt :class:`~handlers.RotatingFileHandler` ou :"
"class:`~handlers.TimedRotatingFileHandler`."

#: howto/logging.rst:940
msgid ""
":class:`~handlers.RotatingFileHandler` instances send messages to disk "
"files, with support for maximum log file sizes and log file rotation."
msgstr ""
"Les instances :class:`~handlers.RotatingFileHandler` envoient des messages à "
"des fichiers sur le disque, avec la prise en charge des tailles maximales de "
"fichiers de journalisation et de la rotation des fichiers de journalisation."

#: howto/logging.rst:943
msgid ""
":class:`~handlers.TimedRotatingFileHandler` instances send messages to disk "
"files, rotating the log file at certain timed intervals."
msgstr ""
"Les instances de :class:`~handlers.TimedRotatingFileHandler` envoient des "
"messages aux fichiers de disque, en permutant le fichier journal à "
"intervalles réguliers."

#: howto/logging.rst:946
msgid ""
":class:`~handlers.SocketHandler` instances send messages to TCP/IP sockets. "
"Since 3.4, Unix domain sockets are also supported."
msgstr ""
"Les instances de :class:`~handlers.SocketHandler` envoient des messages aux "
"connecteurs TCP/IP. Depuis 3.4, les connecteurs UNIX sont également pris en "
"charge."

#: howto/logging.rst:949
msgid ""
":class:`~handlers.DatagramHandler` instances send messages to UDP sockets. "
"Since 3.4, Unix domain sockets are also supported."
msgstr ""
"Les instances de :class:`~handlers.DatagramHandler` envoient des messages "
"aux connecteurs UDP. Depuis 3.4, les connecteurs UNIX sont également pris en "
"charge."

#: howto/logging.rst:952
msgid ""
":class:`~handlers.SMTPHandler` instances send messages to a designated email "
"address."
msgstr ""
"Les instances de :class:`~handlers.SMTPHandler` envoient des messages à une "
"adresse e-mail désignée."

#: howto/logging.rst:955
msgid ""
":class:`~handlers.SysLogHandler` instances send messages to a Unix syslog "
"daemon, possibly on a remote machine."
msgstr ""
"Les instances de :class:`~handlers.SysLogHandler` envoient des messages à un "
"*daemon* *syslog* UNIX, éventuellement sur un ordinateur distant."

#: howto/logging.rst:958
msgid ""
":class:`~handlers.NTEventLogHandler` instances send messages to a Windows "
"NT/2000/XP event log."
msgstr ""
"Les instances de :class:`~handlers.NTEventLogHandler` envoient des messages "
"à un journal des événements Windows NT/2000/XP."

#: howto/logging.rst:961
msgid ""
":class:`~handlers.MemoryHandler` instances send messages to a buffer in "
"memory, which is flushed whenever specific criteria are met."
msgstr ""
"Les instances de :class:`~handlers.MemoryHandler` envoient des messages à un "
"tampon en mémoire, qui est vidé chaque fois que des critères spécifiques "
"sont remplis."

#: howto/logging.rst:964
msgid ""
":class:`~handlers.HTTPHandler` instances send messages to an HTTP server "
"using either ``GET`` or ``POST`` semantics."
msgstr ""
"Les instances de :class:`~handlers.HTTPHandler` envoient des messages à un "
"serveur HTTP à l'aide de la sémantique ``GET`` ou ``POST``."

#: howto/logging.rst:967
msgid ""
":class:`~handlers.WatchedFileHandler` instances watch the file they are "
"logging to. If the file changes, it is closed and reopened using the file "
"name. This handler is only useful on Unix-like systems; Windows does not "
"support the underlying mechanism used."
msgstr ""
"Les instances de :class:`~handlers.WatchedFileHandler` surveillent le "
"fichier sur lequel elles se connectent. Si le fichier change, il est fermé "
"et rouvert à l'aide du nom de fichier. Ce gestionnaire n'est utile que sur "
"les systèmes de type UNIX ; Windows ne prend pas en charge le mécanisme sous-"
"jacent utilisé."

#: howto/logging.rst:972
msgid ""
":class:`~handlers.QueueHandler` instances send messages to a queue, such as "
"those implemented in the :mod:`queue` or :mod:`multiprocessing` modules."
msgstr ""
"Les instances de :class:`~handlers.QueueHandler` envoient des messages à une "
"file d'attente, telles que celles implémentées dans les modules :mod:`queue` "
"ou :mod:`multiprocessing`."

#: howto/logging.rst:975
msgid ""
":class:`NullHandler` instances do nothing with error messages. They are used "
"by library developers who want to use logging, but want to avoid the 'No "
"handlers could be found for logger XXX' message which can be displayed if "
"the library user has not configured logging. See :ref:`library-config` for "
"more information."
msgstr ""
"Les instances :class:`NullHandler` ne font rien avec les messages d'erreur. "
"Ils sont utilisés par les développeurs de bibliothèques qui veulent utiliser "
"la journalisation, mais qui veulent éviter les messages de type *No handlers "
"could be found for logger XXX*, affiché si celui qui utilise la bibliothèque "
"n'a pas configuré la journalisation. Voir :ref:`library-config` pour plus "
"d'informations."

#: howto/logging.rst:981
msgid "The :class:`NullHandler` class."
msgstr "La classe :class:`NullHandler`."

#: howto/logging.rst:984
msgid "The :class:`~handlers.QueueHandler` class."
msgstr "La classe :class:`~handlers.QueueHandler`."

#: howto/logging.rst:987
msgid ""
"The :class:`NullHandler`, :class:`StreamHandler` and :class:`FileHandler` "
"classes are defined in the core logging package. The other handlers are "
"defined in a sub-module, :mod:`logging.handlers`. (There is also another sub-"
"module, :mod:`logging.config`, for configuration functionality.)"
msgstr ""
"Les classes :class:`NullHandler`, :class:`StreamHandler` et :class:"
"`FileHandler` sont définies dans le module de journalisation de base. Les "
"autres gestionnaires sont définis dans un sous-module, :mod:`logging."
"handlers` (il existe également un autre sous-module, :mod:`logging.config`, "
"pour la fonctionnalité de configuration)."

#: howto/logging.rst:992
msgid ""
"Logged messages are formatted for presentation through instances of the :"
"class:`Formatter` class. They are initialized with a format string suitable "
"for use with the % operator and a dictionary."
msgstr ""
"Les messages journalisés sont mis en forme pour la présentation via des "
"instances de la classe :class:`Formatter`. Ils sont initialisés avec une "
"chaîne de format appropriée pour une utilisation avec l'opérateur % et un "
"dictionnaire."

#: howto/logging.rst:996
msgid ""
"For formatting multiple messages in a batch, instances of :class:`~handlers."
"BufferingFormatter` can be used. In addition to the format string (which is "
"applied to each message in the batch), there is provision for header and "
"trailer format strings."
msgstr ""
"Pour formater plusieurs messages dans un lot, des instances de :class:"
"`~handlers.BufferingFormatter` peuvent être utilisées. En plus de la chaîne "
"de format (qui est appliquée à chaque message dans le lot), il existe des "
"dispositions pour les chaînes de format d'en-tête et de fin."

#: howto/logging.rst:1001
msgid ""
"When filtering based on logger level and/or handler level is not enough, "
"instances of :class:`Filter` can be added to both :class:`Logger` and :class:"
"`Handler` instances (through their :meth:`~Handler.addFilter` method). "
"Before deciding to process a message further, both loggers and handlers "
"consult all their filters for permission. If any filter returns a false "
"value, the message is not processed further."
msgstr ""
"Lorsque le filtrage basé sur le niveau de l'enregistreur et/ou le niveau du "
"gestionnaire ne suffit pas, les instances de :class:`Filter` peuvent être "
"ajoutées aux deux instances de :class:`Logger` et :class:`Handler` (par le "
"biais de leur méthode :meth:`~Handler.addFilter`). Avant de décider de "
"traiter un message plus loin, les enregistreurs et les gestionnaires "
"consultent tous leurs filtres pour obtenir l'autorisation. Si un filtre "
"renvoie une valeur ``False``, le traitement du message est arrêté."

#: howto/logging.rst:1008
msgid ""
"The basic :class:`Filter` functionality allows filtering by specific logger "
"name. If this feature is used, messages sent to the named logger and its "
"children are allowed through the filter, and all others dropped."
msgstr ""
"La fonctionnalité de base :class:`Filter` permet de filtrer par nom de "
"*logger* spécifique. Si cette fonctionnalité est utilisée, les messages "
"envoyés à l'enregistreur nommé et à ses enfants sont autorisés via le filtre "
"et tous les autres sont abandonnés."

#: howto/logging.rst:1016
msgid "Exceptions raised during logging"
msgstr "Exceptions levées par la journalisation"

#: howto/logging.rst:1018
msgid ""
"The logging package is designed to swallow exceptions which occur while "
"logging in production. This is so that errors which occur while handling "
"logging events - such as logging misconfiguration, network or other similar "
"errors - do not cause the application using logging to terminate prematurely."
msgstr ""
"Le paquet de journalisation est conçu pour ne pas faire apparaître les "
"exceptions qui se produisent lors de la journalisation en production. Il "
"s'agit de sorte que les erreurs qui se produisent lors de la gestion des "
"événements de journalisation (telles qu'une mauvaise configuration de la "
"journalisation, une erreur réseau ou d'autres erreurs similaires) ne "
"provoquent pas l'arrêt de l'application utilisant la journalisation."

#: howto/logging.rst:1023
msgid ""
":class:`SystemExit` and :class:`KeyboardInterrupt` exceptions are never "
"swallowed. Other exceptions which occur during the :meth:`~Handler.emit` "
"method of a :class:`Handler` subclass are passed to its :meth:`~Handler."
"handleError` method."
msgstr ""
"Les exceptions :class:`SystemExit` et :class:`KeyboardInterrupt` ne sont "
"jamais passées sous silence. Les autres exceptions qui se produisent pendant "
"la méthode :meth:`~Handler.emit` d'une sous classe :class:`Handler` sont "
"passées à sa méthode :meth:`~Handler.handleError`."

#: howto/logging.rst:1028
msgid ""
"The default implementation of :meth:`~Handler.handleError` in :class:"
"`Handler` checks to see if a module-level variable, :data:`raiseExceptions`, "
"is set. If set, a traceback is printed to :data:`sys.stderr`. If not set, "
"the exception is swallowed."
msgstr ""
"L'implémentation par défaut de :meth:`~Handler.handleError` dans la classe :"
"class:`Handler` vérifie si une variable au niveau du module, :data:"
"`raiseExceptions`, est définie. Si cette valeur est définie, la trace de la "
"pile d'appels est affichée sur :data:`sys.stderr`. Si elle n'est pas "
"définie, l'exception est passée sous silence."

#: howto/logging.rst:1033
msgid ""
"The default value of :data:`raiseExceptions` is ``True``. This is because "
"during development, you typically want to be notified of any exceptions that "
"occur. It's advised that you set :data:`raiseExceptions` to ``False`` for "
"production usage."
msgstr ""
"La valeur par défaut de :data:`raiseExceptions` est ``True``. C'est parce "
"que pendant le développement, vous voulez généralement être notifié de "
"toutes les exceptions qui se produisent. Il est conseillé de définir :data:"
"`raiseExceptions` à ``False`` pour une utilisation en production."

#: howto/logging.rst:1043
msgid "Using arbitrary objects as messages"
msgstr "Utilisation d'objets arbitraires comme messages"

#: howto/logging.rst:1045
msgid ""
"In the preceding sections and examples, it has been assumed that the message "
"passed when logging the event is a string. However, this is not the only "
"possibility. You can pass an arbitrary object as a message, and its :meth:"
"`~object.__str__` method will be called when the logging system needs to "
"convert it to a string representation. In fact, if you want to, you can "
"avoid computing a string representation altogether - for example, the :class:"
"`~handlers.SocketHandler` emits an event by pickling it and sending it over "
"the wire."
msgstr ""
"Dans les sections et exemples précédents, il a été supposé que le message "
"passé lors de la journalisation de l'événement est une chaîne. Cependant, ce "
"n'est pas la seule possibilité. Vous pouvez passer un objet arbitraire en "
"tant que message et sa méthode :meth:`~object.__str__` est appelée lorsque "
"le système de journalisation doit le convertir en une représentation sous "
"forme de chaîne. En fait, si vous le souhaitez, vous pouvez complètement "
"éviter de calculer une représentation sous forme de chaîne. Par exemple, les "
"gestionnaires :class:`~handlers.SocketHandler` émettent un événement en lui "
"appliquant *pickle* et en l'envoyant sur le réseau."

#: howto/logging.rst:1056
msgid "Optimization"
msgstr "Optimisation"

#: howto/logging.rst:1058
msgid ""
"Formatting of message arguments is deferred until it cannot be avoided. "
"However, computing the arguments passed to the logging method can also be "
"expensive, and you may want to avoid doing it if the logger will just throw "
"away your event. To decide what to do, you can call the :meth:`~Logger."
"isEnabledFor` method which takes a level argument and returns true if the "
"event would be created by the Logger for that level of call. You can write "
"code like this::"
msgstr ""
"La mise en forme des arguments de message est différée jusqu'à ce qu'elle ne "
"puisse pas être évitée. Toutefois, le calcul des arguments passés à la "
"méthode de journalisation peut également être coûteux et vous voudrez peut-"
"être éviter de le faire si l'enregistreur va simplement jeter votre "
"événement. Pour décider de ce qu'il faut faire, vous pouvez appeler la "
"méthode :meth:`~Logger.isEnabledFor` qui prend en argument le niveau et "
"renvoie ``True`` si un événement est créé par l'enregistreur pour ce niveau "
"d'appel. Vous pouvez écrire un code qui ressemble à ça ::"

#: howto/logging.rst:1070
msgid ""
"so that if the logger's threshold is set above ``DEBUG``, the calls to :func:"
"`expensive_func1` and :func:`expensive_func2` are never made."
msgstr ""
"de sorte que si le seuil du journaliseur est défini au-dessus de ``DEBUG``, "
"les appels à :func:`expensive_func1` et :func:`expensive_func2` ne sont "
"jamais faits."

#: howto/logging.rst:1073
msgid ""
"In some cases, :meth:`~Logger.isEnabledFor` can itself be more expensive "
"than you'd like (e.g. for deeply nested loggers where an explicit level is "
"only set high up in the logger hierarchy). In such cases (or if you want to "
"avoid calling a method in tight loops), you can cache the result of a call "
"to :meth:`~Logger.isEnabledFor` in a local or instance variable, and use "
"that instead of calling the method each time. Such a cached value would only "
"need to be recomputed when the logging configuration changes dynamically "
"while the application is running (which is not all that common)."
msgstr ""
"Dans certains cas, :meth:`~Logger.isEnabledFor` peut être plus coûteux que "
"vous le souhaitez (par exemple pour les enregistreurs profondément imbriqués "
"où un niveau explicite n'est défini que dans la hiérarchie des "
"enregistreurs). Dans de tels cas (ou si vous souhaitez éviter d'appeler une "
"méthode dans des boucles optimisées), vous pouvez mettre en cache le "
"résultat d'un appel à :meth:`~Logger.isEnabledFor` dans une variable locale "
"ou d'instance, et l'utiliser au lieu d'appeler la méthode à chaque fois. Une "
"telle valeur mise en cache ne doit être recalculée que lorsque la "
"configuration de journalisation change dynamiquement pendant l'exécution de "
"l'application (ce qui est rarement le cas)."

#: howto/logging.rst:1082
msgid ""
"There are other optimizations which can be made for specific applications "
"which need more precise control over what logging information is collected. "
"Here's a list of things you can do to avoid processing during logging which "
"you don't need:"
msgstr ""
"Il existe d'autres optimisations qui peuvent être faites pour des "
"applications spécifiques qui nécessitent un contrôle plus précis sur les "
"informations de journalisation collectées. Voici une liste de choses que "
"vous pouvez faire pour éviter le traitement pendant la journalisation dont "
"vous n'avez pas besoin :"

#: howto/logging.rst:1088
msgid "What you don't want to collect"
msgstr "Ce que vous ne voulez pas collecter"

#: howto/logging.rst:1088
msgid "How to avoid collecting it"
msgstr "Comment éviter de le collecter"

#: howto/logging.rst:1090
msgid "Information about where calls were made from."
msgstr "Informations sur l'endroit où les appels ont été faits."

#: howto/logging.rst:1090
msgid ""
"Set ``logging._srcfile`` to ``None``. This avoids calling :func:`sys."
"_getframe`, which may help to speed up your code in environments like PyPy "
"(which can't speed up code that uses :func:`sys._getframe`)."
msgstr ""
"Définissez ``logging._srcfile`` à ``None``. Cela évite d'appeler :func:`sys."
"_getframe`, qui peut aider à accélérer votre code dans des environnements "
"comme PyPy (qui ne peut pas accélérer le code qui utilise :func:`sys."
"_getframe`)."

#: howto/logging.rst:1096
msgid "Threading information."
msgstr "Informations de *threading*."

#: howto/logging.rst:1096
msgid "Set ``logging.logThreads`` to ``False``."
msgstr "Mettez ``logging.logThreads`` à ``False``."

#: howto/logging.rst:1098
msgid "Current process ID (:func:`os.getpid`)"
msgstr "Identifiant du processus courant (résultat de :func:`os.getpid`)"

#: howto/logging.rst:1098
msgid "Set ``logging.logProcesses`` to ``False``."
msgstr "Mettez ``logging.logProcesses`` à ``False``."

#: howto/logging.rst:1100
msgid ""
"Current process name when using ``multiprocessing`` to manage multiple "
"processes."
msgstr ""
"Nom du processus actuel, si vous vous servez de ``multiprocessing`` pour "
"gérer plusieurs processus à la fois"

#: howto/logging.rst:1100
msgid "Set ``logging.logMultiprocessing`` to ``False``."
msgstr "Mettez ``logging.logMultiProcessing`` à ``False``."

#: howto/logging.rst:1104
msgid ""
"Also note that the core logging module only includes the basic handlers. If "
"you don't import :mod:`logging.handlers` and :mod:`logging.config`, they "
"won't take up any memory."
msgstr ""
"Notez également que le module de journalisation principale inclut uniquement "
"les gestionnaires de base. Si vous n'importez pas :mod:`logging.handlers` "
"et :mod:`logging.config`, ils ne prendront pas de mémoire."

#: howto/logging.rst:1111
msgid "Module :mod:`logging`"
msgstr "Module :mod:`logging`"

#: howto/logging.rst:1111
msgid "API reference for the logging module."
msgstr "Référence d'API pour le module de journalisation."

#: howto/logging.rst:1114
msgid "Module :mod:`logging.config`"
msgstr "Module :mod:`logging.config`"

#: howto/logging.rst:1114
msgid "Configuration API for the logging module."
msgstr "API de configuration pour le module de journalisation."

#: howto/logging.rst:1117
msgid "Module :mod:`logging.handlers`"
msgstr "Module :mod:`logging.handlers`"

#: howto/logging.rst:1117
msgid "Useful handlers included with the logging module."
msgstr "Gestionnaires utiles inclus avec le module de journalisation."

#: howto/logging.rst:1119
msgid ":ref:`A logging cookbook <logging-cookbook>`"
msgstr ":ref:`A logging cookbook <logging-cookbook>`"

#~ msgid "Process information."
#~ msgstr "Informations sur le processus."
