1
0
Fork 0
python-docs-fr/howto/logging.po

2078 lines
94 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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: 2021-09-23 16:16+0200\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 dun 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:854
msgid "Level"
msgstr "Niveau"
#: howto/logging.rst:69
msgid "When it's used"
msgstr "Quand il est utilisé"
#: howto/logging.rst:864
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:862
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:860
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:858
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:856
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 d'`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 "
"cet `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 cest 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 quun message ne soit écrit, puisquun "
"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 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:845
msgid "Logging Levels"
msgstr "Niveaux de journalisation"
#: howto/logging.rst:847
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:854
msgid "Numeric value"
msgstr "Valeur numérique"
#: howto/logging.rst:856
msgid "50"
msgstr "50"
#: howto/logging.rst:858
msgid "40"
msgstr "40"
#: howto/logging.rst:860
msgid "30"
msgstr "30"
#: howto/logging.rst:862
msgid "20"
msgstr "20"
#: howto/logging.rst:864
msgid "10"
msgstr "10"
#: howto/logging.rst:866
msgid "``NOTSET``"
msgstr "``NOTSET``"
#: howto/logging.rst:866
msgid "0"
msgstr "0"
#: howto/logging.rst:869
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:876
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:880
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:894
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:903
msgid "Custom Levels"
msgstr "Niveaux personnalisés"
#: howto/logging.rst:905
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 cest *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:918
msgid "Useful Handlers"
msgstr "Gestionnaires utiles"
#: howto/logging.rst:920
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:923
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:926
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:928
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 dun 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:933
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:936
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:939
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:942
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:945
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:948
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:951
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:954
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:957
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:960
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:965
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:968
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:974
msgid "The :class:`NullHandler` class."
msgstr "La classe :class:`NullHandler`."
#: howto/logging.rst:977
msgid "The :class:`~handlers.QueueHandler` class."
msgstr "La classe :class:`~handlers.QueueHandler`."
#: howto/logging.rst:980
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:985
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:989
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:994
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:1001
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:1009
msgid "Exceptions raised during logging"
msgstr "Exceptions levées par la journalisation"
#: howto/logging.rst:1011
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:1016
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:1021
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:1026
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:1036
msgid "Using arbitrary objects as messages"
msgstr "Utilisation d'objets arbitraires comme messages"
#: howto/logging.rst:1038
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:1049
msgid "Optimization"
msgstr "Optimisation"
#: howto/logging.rst:1051
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:1063
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:1066
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:1075
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:1081
msgid "What you don't want to collect"
msgstr "Ce que vous ne voulez pas collecter"
#: howto/logging.rst:1081
msgid "How to avoid collecting it"
msgstr "Comment éviter de le collecter"
#: howto/logging.rst:1083
msgid "Information about where calls were made from."
msgstr "Informations sur l'endroit où les appels ont été faits."
#: howto/logging.rst:1083
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:1089
msgid "Threading information."
msgstr "Informations de *threading*."
#: howto/logging.rst:1089
msgid "Set ``logging.logThreads`` to ``False``."
msgstr "Mettez ``logging.logThreads`` à ``False``."
#: howto/logging.rst:1091
msgid "Current process ID (:func:`os.getpid`)"
msgstr "Identifiant du processus courant (résultat de :func:`os.getpid`)"
#: howto/logging.rst:1091
msgid "Set ``logging.logProcesses`` to ``False``."
msgstr "Mettez ``logging.logProcesses`` à ``False``."
#: howto/logging.rst:1093
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:1093
msgid "Set ``logging.logMultiprocessing`` to ``False``."
msgstr "Mettez ``logging.logMultiProcessing`` à ``False``."
#: howto/logging.rst:1097
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:1104
msgid "Module :mod:`logging`"
msgstr "Module :mod:`logging`"
#: howto/logging.rst:1104
msgid "API reference for the logging module."
msgstr "Référence d'API pour le module de journalisation."
#: howto/logging.rst:1107
msgid "Module :mod:`logging.config`"
msgstr "Module :mod:`logging.config`"
#: howto/logging.rst:1107
msgid "Configuration API for the logging module."
msgstr "API de configuration pour le module de journalisation."
#: howto/logging.rst:1110
msgid "Module :mod:`logging.handlers`"
msgstr "Module :mod:`logging.handlers`"
#: howto/logging.rst:1110
msgid "Useful handlers included with the logging module."
msgstr "Gestionnaires utiles inclus avec le module de journalisation."
#: howto/logging.rst:1112
msgid ":ref:`A logging cookbook <logging-cookbook>`"
msgstr ":ref:`A logging cookbook <logging-cookbook>`"
#~ msgid "Process information."
#~ msgstr "Informations sur le processus."