From 93cc8cce20873df722e3eab8efd9d06a925c311b Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Sat, 5 Sep 2020 23:58:35 -0300 Subject: [PATCH 01/34] =?UTF-8?q?traducci=C3=B3n=20preliminar=20100%?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- howto/logging-cookbook.po | 897 ++++++++++++++++++++++++++++++++++---- 1 file changed, 821 insertions(+), 76 deletions(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index add8f81564..583ee84535 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -6,43 +6,50 @@ # Check https://github.com/PyCampES/python-docs-es/blob/3.8/TRANSLATORS to # get the list of volunteers # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-05 12:54+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2020-09-05 23:22-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: Carlos A. Crespo \n" +"Language: es\n" +"X-Generator: Poedit 2.4.1\n" #: ../Doc/howto/logging-cookbook.rst:5 msgid "Logging Cookbook" -msgstr "" +msgstr "Libro de recetas de Logging" #: ../Doc/howto/logging-cookbook.rst msgid "Author" -msgstr "" +msgstr "Autor" #: ../Doc/howto/logging-cookbook.rst:7 msgid "Vinay Sajip " -msgstr "" +msgstr "Vinay Sajip " #: ../Doc/howto/logging-cookbook.rst:9 msgid "" "This page contains a number of recipes related to logging, which have been " "found useful in the past." msgstr "" +"Esta página contiene un número de recetas sobre *logging*, que han sido " +"útiles en el pasado." #: ../Doc/howto/logging-cookbook.rst:15 msgid "Using logging in multiple modules" -msgstr "" +msgstr "Usar logging en múltiples módulos" +# es correcto decir "...en el mismo proceso *el* intérprete de pyhton"? +# 'logger' lo dejé en inglés. Podría ponerle "Registrador"? #: ../Doc/howto/logging-cookbook.rst:17 +#, fuzzy msgid "" "Multiple calls to ``logging.getLogger('someLogger')`` return a reference to " "the same logger object. This is true not only within the same module, but " @@ -53,40 +60,57 @@ msgid "" "logger calls to the child will pass up to the parent. Here is a main " "module::" msgstr "" +"Múltiples llamadas a ``logging.getLogger('someLogger')`` devuelven una " +"referencia al mismo objeto logger. Esto es cierto no solo dentro del mismo " +"módulo, sino también en todos los módulos siempre que esté en el mismo " +"proceso el intérprete de Python. Es válido para las referencias al mismo " +"objeto. Además, el código de la aplicación puede definir y configurar un " +"logger primario en un módulo y crear (pero no configurar) un logger " +"secundario en un módulo separado, y todas las llamadas al secundario pasarán " +"al principal. A continuación un módulo principal::" +# Esto me confunde un poco. Cuando menciona módulo principal / auxiliar en los ejemplos, ¿se refiere a principal y secundario que está en el cuerpo del texto? ¿no convendría unificar? #: ../Doc/howto/logging-cookbook.rst:55 +#, fuzzy msgid "Here is the auxiliary module::" -msgstr "" +msgstr "Y aquí un módulo auxiliar::" #: ../Doc/howto/logging-cookbook.rst:75 msgid "The output looks like this:" -msgstr "" +msgstr "El resultado se ve así:" #: ../Doc/howto/logging-cookbook.rst:101 msgid "Logging from multiple threads" -msgstr "" +msgstr "Logging desde múltiples hilos" #: ../Doc/howto/logging-cookbook.rst:103 msgid "" "Logging from multiple threads requires no special effort. The following " "example shows logging from the main (initial) thread and another thread::" msgstr "" +"*Logging* desde múltiples hilos (*threads*) no requiere ningún esfuerzo " +"especial. El siguiente ejemplo muestra el registro desde el hilo principal " +"(inicial) y otro hilo::" #: ../Doc/howto/logging-cookbook.rst:132 msgid "When run, the script should print something like the following:" -msgstr "" +msgstr "Cuando se ejecuta, el script debe imprimir algo como lo siguiente:" #: ../Doc/howto/logging-cookbook.rst:154 msgid "" "This shows the logging output interspersed as one might expect. This " "approach works for more threads than shown here, of course." msgstr "" +"Esto muestra la salida de registro intercalada como cabría esperar. Por " +"supuesto, este enfoque funciona para más hilos de lo que se muestran aquí." #: ../Doc/howto/logging-cookbook.rst:158 +#, fuzzy msgid "Multiple handlers and formatters" -msgstr "" +msgstr "Múltiples gestores y formateadores" #: ../Doc/howto/logging-cookbook.rst:160 +#, fuzzy msgid "" "Loggers are plain Python objects. The :meth:`~Logger.addHandler` method has " "no minimum or maximum quota for the number of handlers you may add. " @@ -97,6 +121,15 @@ msgid "" "slight modification to the previous simple module-based configuration " "example::" msgstr "" +"Los *loggers* son simples objetos Python. El método :meth:`~Logger." +"addHandler` no tiene una cuota mínima o máxima para la cantidad de gestores " +"(*handlers*) que puede agregar. A veces será beneficioso para una aplicación " +"registrar todos los mensajes de todas las severidades en un archivo de texto " +"mientras se registran simultáneamente los errores o más en la consola. Para " +"configurar esto, simplemente configure los manejadores apropiados. Las " +"llamadas de registro en el código de la aplicación permanecerán sin cambios. " +"Aquí hay una ligera modificación al ejemplo de configuración simple anterior " +"basado en módulo::" #: ../Doc/howto/logging-cookbook.rst:193 msgid "" @@ -104,8 +137,14 @@ msgid "" "All that changed was the addition and configuration of a new handler named " "*fh*." msgstr "" +"Tenga en cuenta que el código de la 'aplicación' no se preocupa por los " +"gestores múltiples. Todo lo que cambió fue la adición y configuración de un " +"nuevo gestor llamado *fh*." +# ¿mayor o menor "severidad" del logger? ¿importancia? +# ¿prioridad? #: ../Doc/howto/logging-cookbook.rst:196 +#, fuzzy msgid "" "The ability to create new handlers with higher- or lower-severity filters " "can be very helpful when writing and testing an application. Instead of " @@ -116,10 +155,18 @@ msgid "" "to happen is to modify the severity level of the logger and/or handler to " "debug." msgstr "" +"La capacidad de crear nuevos gestores con filtros de mayor o menor severidad " +"puede ser muy útil al escribir y probar una aplicación. En lugar de usar " +"muchas declaraciones ``print`` para la depuración, use ``logger.debug``: a " +"diferencia de las declaraciones de impresión, que tendrá que eliminar o " +"comentar más tarde, las declaraciones de *logger.debug* pueden permanecer " +"intactas en el código fuente y permanecen inactivas hasta que las necesites " +"nuevamente. En ese momento, el único cambio que debe realizar es modificar " +"el nivel de severidad del *logger* y/o gestor para depurar." #: ../Doc/howto/logging-cookbook.rst:207 msgid "Logging to multiple destinations" -msgstr "" +msgstr "Logging en múltiples destinos" #: ../Doc/howto/logging-cookbook.rst:209 msgid "" @@ -129,34 +176,46 @@ msgid "" "console. Let's also assume that the file should contain timestamps, but the " "console messages should not. Here's how you can achieve this::" msgstr "" +"Supongamos que desea que la consola y un archivo tengan diferentes formatos " +"de mensaje y salida de registro para diferentes situaciones. Por ejemplo, " +"desea registrar mensajes con un nivel DEBUG y superiores en un archivo y " +"enviar mensajes con nivel INFO y superior a la consola. Además, suponga que " +"desea grabar una marca de tiempo en el archivo y no imprimirlo en la " +"consola. Puede lograr este comportamiento haciendo lo siguiente::" #: ../Doc/howto/logging-cookbook.rst:247 msgid "When you run this, on the console you will see" -msgstr "" +msgstr "Cuando ejecute esto, en la consola verá" #: ../Doc/howto/logging-cookbook.rst:256 msgid "and in the file you will see something like" -msgstr "" +msgstr "y en el archivo vera algo como" #: ../Doc/howto/logging-cookbook.rst:266 msgid "" "As you can see, the DEBUG message only shows up in the file. The other " "messages are sent to both destinations." msgstr "" +"Como se puede ver, el mensaje DEBUG sólo se muestra en el archivo. Los otros " +"mensajes se envían a los dos destinos." #: ../Doc/howto/logging-cookbook.rst:269 msgid "" "This example uses console and file handlers, but you can use any number and " "combination of handlers you choose." msgstr "" +"Este ejemplo usa gestores de consola y archivos, pero puede usar cualquier " +"número y combinación de los gestores que elija." #: ../Doc/howto/logging-cookbook.rst:274 msgid "Configuration server example" -msgstr "" +msgstr "Ejemplo de servidor de configuración" #: ../Doc/howto/logging-cookbook.rst:276 msgid "Here is an example of a module using the logging configuration server::" msgstr "" +"Aquí hay un ejemplo de un módulo que usa el servidor de configuración " +"logging::" #: ../Doc/howto/logging-cookbook.rst:307 msgid "" @@ -164,10 +223,14 @@ msgid "" "server, properly preceded with the binary-encoded length, as the new logging " "configuration::" msgstr "" +"Y aquí hay un script que toma un nombre de archivo y envía ese archivo al " +"servidor, precedido adecuadamente con la longitud codificada en binario, " +"como la nueva configuración de logging::" #: ../Doc/howto/logging-cookbook.rst:330 +#, fuzzy msgid "Dealing with handlers that block" -msgstr "" +msgstr "Tratar con gestores que bloquean" #: ../Doc/howto/logging-cookbook.rst:334 msgid "" @@ -175,8 +238,13 @@ msgid "" "blocking the thread you're logging from. This is common in Web applications, " "though of course it also occurs in other scenarios." msgstr "" +"A veces tiene que hacer que sus gestores de registro hagan su trabajo sin " +"bloquear el hilo desde el que está iniciando sesión. Esto es común en las " +"aplicaciones web, aunque, por supuesto, también ocurre en otros escenarios." +# -"under the hood": de bajo nivel? más técnicas? #: ../Doc/howto/logging-cookbook.rst:338 +#, fuzzy msgid "" "A common culprit which demonstrates sluggish behaviour is the :class:" "`SMTPHandler`: sending emails can take a long time, for a number of reasons " @@ -186,6 +254,14 @@ msgid "" "which is too slow (and this query can be deep in the socket library code, " "below the Python layer, and outside your control)." msgstr "" +"Un responsable común que demuestra comportamiento lento es la :class:" +"`SMTPHandler`: el envío de correos electrónicos puede llevar mucho tiempo, " +"por varias razones fuera del control del desarrollador (por ejemplo, una " +"infraestructura de red o correo de bajo rendimiento). Pero casi cualquier " +"controlador basado en red puede bloquear: Incluso una operación :class:" +"`SocketHandler` puede hacer una consulta DNS de bajo nivel que es demasiado " +"lenta (y esta consulta puede estar en el código de la biblioteca de socket, " +"debajo de la capa de Python, y fuera de su control)." #: ../Doc/howto/logging-cookbook.rst:346 msgid "" @@ -200,8 +276,20 @@ msgid "" "to attach only ``QueueHandlers`` to your loggers) for the benefit of other " "developers who will use your code." msgstr "" +"Una solución es utilizar un enfoque de dos partes. Para la primera parte, " +"adjunte solo una : ¡class:`QueueHandler` a los loggers que se acceden desde " +"subprocesos críticos de rendimiento. Simplemente escriben en su cola, que " +"puede dimensionarse a una capacidad lo suficientemente grande o " +"inicializarse sin límite superior a su tamaño. La escritura en la cola " +"generalmente se aceptará rápidamente, aunque es probable que deba atrapar la " +"excepción :exc:`queue.Full` como precaución en su código. Si usted es un " +"desarrollador de bibliotecas que tiene subprocesos críticos de rendimiento " +"en su código, asegúrese de documentar esto (junto con una sugerencia de " +"adjuntar solo ``QueueHandlers`` a sus loggers) para el beneficio de otros " +"desarrolladores que usarán su código." #: ../Doc/howto/logging-cookbook.rst:357 +#, fuzzy msgid "" "The second part of the solution is :class:`QueueListener`, which has been " "designed as the counterpart to :class:`QueueHandler`. A :class:" @@ -211,6 +299,12 @@ msgid "" "matter). The ``LogRecords`` are removed from the queue and passed to the " "handlers for processing." msgstr "" +"La segunda parte de la solución es :class:`QueueListener`, que fue designado " +"como la contraparte de :class:`QueueHandler`. Un :class:`QueueListener` es " +"muy simple: ha pasado una cola y algunos gestores, y activa un hilo interno " +"que escucha su cola para LogRecords enviados desde ``QueueHandlers`` (o " +"cualquier otra fuente de ``LogRecords``, para el caso). Los ``LogRecords`` " +"se eliminan de la cola y se pasan a los gestores para su procesamiento." #: ../Doc/howto/logging-cookbook.rst:365 msgid "" @@ -220,16 +314,24 @@ msgid "" "handler classes, which would eat up one thread per handler for no particular " "benefit." msgstr "" +"La ventaja de tener una clase separada :class:`QueueListener` es que puede " +"usar la misma instancia para dar servicio a múltiples ``QueueHandlers``. " +"Esto es más amigable con los recursos que, por ejemplo, tener versiones " +"enhebradas de las clases de gestores existentes, que consumirían un hilo por " +"gestor sin ningún beneficio particular." #: ../Doc/howto/logging-cookbook.rst:370 msgid "An example of using these two classes follows (imports omitted)::" msgstr "" +"Un ejemplo del uso de estas dos clases a continuación (se omiten *imports*)::" #: ../Doc/howto/logging-cookbook.rst:388 msgid "which, when run, will produce:" -msgstr "" +msgstr "que, cuando se ejecuta, producirá:" +# Está OK traducir "listener" por "oyente"?? #: ../Doc/howto/logging-cookbook.rst:394 +#, fuzzy msgid "" "Prior to Python 3.5, the :class:`QueueListener` always passed every message " "received from the queue to every handler it was initialized with. (This was " @@ -240,29 +342,48 @@ msgid "" "of each message with the handler's level, and only passes a message to a " "handler if it's appropriate to do so." msgstr "" +"Antes de Python 3.5, :class:`QueueListener` siempre pasaba cada mensaje " +"recibido de la cola a cada gestor con el que se inicializaba. (Esto se debió " +"a que se asumió que el filtrado de nivel se realizó en el otro lado, donde " +"se llena la cola). A partir de 3.5, este comportamiento se puede cambiar " +"pasando un argumento de palabra clave ``respect_handler_level=True`` al " +"constructor del oyente . Cuando se hace esto, el oyente compara el nivel de " +"cada mensaje con el nivel del controlador, y solo pasa un mensaje a un " +"controlador si es apropiado hacerlo." #: ../Doc/howto/logging-cookbook.rst:407 msgid "Sending and receiving logging events across a network" -msgstr "" +msgstr "Enviar y recibir eventos logging a través de una red" +# tengo dudas con "extremo final del envío" #: ../Doc/howto/logging-cookbook.rst:409 +#, fuzzy msgid "" "Let's say you want to send logging events across a network, and handle them " "at the receiving end. A simple way of doing this is attaching a :class:" "`SocketHandler` instance to the root logger at the sending end::" msgstr "" +"Supongamos que desea enviar eventos logging a través de una red y " +"gestionarlos en el extremo receptor. Una forma sencilla de hacer esto es " +"adjuntar una instancia de :class:`SocketHandler` al logger raíz en el " +"extremo final del envío::" #: ../Doc/howto/logging-cookbook.rst:437 msgid "" "At the receiving end, you can set up a receiver using the :mod:" "`socketserver` module. Here is a basic working example::" msgstr "" +"En el extremo receptor, puede configurar un receptor usando el módulo :mod:" +"`socketserver`. Aquí hay un ejemplo básico de trabajo:" #: ../Doc/howto/logging-cookbook.rst:525 msgid "" "First run the server, and then the client. On the client side, nothing is " "printed on the console; on the server side, you should see something like:" msgstr "" +"Primero ejecuta el servidor, y luego el cliente. Del lado del cliente, nada " +"se imprime en la consola; del lado del servidor, se debería ver algo como " +"esto:" #: ../Doc/howto/logging-cookbook.rst:537 msgid "" @@ -272,11 +393,17 @@ msgid "" "implementing your alternative there, as well as adapting the above script to " "use your alternative serialization." msgstr "" +"Tenga en cuenta que existen algunos problemas de seguridad con pickle en " +"algunos escenarios. Si estos le afectan, puede usar un esquema de " +"serialización alternativo anulando el método :meth:`~ handlers.SocketHandler." +"makePickle` e implementando su alternativa allí, así como adaptar el script " +"anterior para usar su serialización alternativa." #: ../Doc/howto/logging-cookbook.rst:547 msgid "Adding contextual information to your logging output" -msgstr "" +msgstr "Agregar información contextual a su salida de logging" +# no estoy seguro de la parte "se liberan de memoria via recolector de basura". En la wikipedia en español lo llaman así. "se liberan de memoria" es una agregado mío. #: ../Doc/howto/logging-cookbook.rst:549 msgid "" "Sometimes you want logging output to contain contextual information in " @@ -292,12 +419,27 @@ msgid "" "logging an application, it could be hard to manage if the number of :class:" "`Logger` instances becomes effectively unbounded." msgstr "" +"A veces, desea que la salida de registro contenga información contextual " +"además de los parámetros pasados ​​a la llamada del logging. Por ejemplo, en " +"una aplicación en red, puede ser conveniente registrar información " +"específica del cliente en el registro (por ejemplo, el nombre de usuario del " +"cliente remoto o la dirección IP). Aunque puede usar el parámetro *extra* " +"para lograr esto, no siempre es conveniente pasar la información de esta " +"manera. Si bien puede resultar tentador crear instancias :class:`Logger` por " +"conexión, esta no es una buena idea porque estas instancias no se liberan de " +"memoria vía recolector de basura (*garbage collector*). Si bien esto no es " +"un problema en la práctica, cuando el número de instancias de :class:" +"`Logger` depende del nivel de granularidad que desea usar para registrar una " +"aplicación, podría ser difícil de administrar si el número de instancias :" +"class:`Logger` se vuelven efectivamente ilimitadas." #: ../Doc/howto/logging-cookbook.rst:564 msgid "Using LoggerAdapters to impart contextual information" -msgstr "" +msgstr "Uso de LoggerAdapters para impartir información contextual" +# "signatures" por "características"? #: ../Doc/howto/logging-cookbook.rst:566 +#, fuzzy msgid "" "An easy way in which you can pass contextual information to be output along " "with logging event information is to use the :class:`LoggerAdapter` class. " @@ -307,8 +449,16 @@ msgid "" "signatures as their counterparts in :class:`Logger`, so you can use the two " "types of instances interchangeably." msgstr "" +"Una manera fácil de pasar información contextual para que se genere junto " +"con la información de eventos logging es usar la clase :class:" +"`LoggerAdapter`. Esta clase está diseñada para parecerse a :class:`Logger`, " +"de modo que pueda llamar : meth:`debug`, :meth:`info`, :meth:`warning`, :" +"meth:`error`, :meth:`excepción`, :meth`critical` y :meth:`log`. Estos " +"métodos tienen las mismas características que sus contrapartes en :class:" +"`Logger`, por lo que puede usar los dos tipos de instancias indistintamente." #: ../Doc/howto/logging-cookbook.rst:574 +#, fuzzy msgid "" "When you create an instance of :class:`LoggerAdapter`, you pass it a :class:" "`Logger` instance and a dict-like object which contains your contextual " @@ -318,6 +468,13 @@ msgid "" "contextual information in the delegated call. Here's a snippet from the code " "of :class:`LoggerAdapter`::" msgstr "" +"Cuando creas una instancia de :class:`LoggerAdapter`, le pasas una " +"instancia :class:`Logger` y un objeto tipo dict que contiene tu información " +"contextual. Cuando llamas a uno de los métodos logging en una instancia de :" +"class:`LoggerAdapter`, este último delega la llamada a la instancia " +"subyacente de :class:`Logger` pasada a su constructor, y se arregla para " +"pasar la información contextual en la llamada delegada . Aquí hay un " +"fragmento del código de :class:`LoggerAdapter`::" #: ../Doc/howto/logging-cookbook.rst:590 msgid "" @@ -331,6 +488,15 @@ msgid "" "had passed an 'extra' keyword argument in the call to the adapter, it will " "be silently overwritten." msgstr "" +"El método :meth:`~LoggerAdapter.process` de :class:`LoggerAdapter` es donde " +"la información contextual se agrega a la salida del registro. Se pasa el " +"mensaje y los argumentos de palabra clave de la llamada logging, y devuelve " +"versiones (potencialmente) modificadas de estos para usar en la llamada al " +"logging subyacente. La implementación predeterminada de este método deja el " +"mensaje solo, pero inserta una clave 'extra' en el argumento de palabra " +"clave cuyo valor es el objeto tipo dict pasado al constructor. Por supuesto, " +"si ha pasado un argumento de palabra clave 'extra' en la llamada al " +"adaptador, se sobrescribirá silenciosamente." #: ../Doc/howto/logging-cookbook.rst:599 msgid "" @@ -342,20 +508,31 @@ msgid "" "string, you just need to subclass :class:`LoggerAdapter` and override :meth:" "`~LoggerAdapter.process` to do what you need. Here is a simple example::" msgstr "" +"La ventaja de usar 'extra' es que los valores en el objeto dict se combinan " +"en la instancia :class:`LogRecord`__dict__, lo que le permite usar cadenas " +"personalizadas con sus instancias :class:`Formatter` que conocen las claves " +"del objeto dict. Si necesita un método diferente, por ejemplo, si desea " +"anteponer o agregar la información contextual a la cadena del mensaje, solo " +"necesita la subclase :class:`LoggerAdapter` y anular :meth:`~ LoggerAdapter." +"process` para hacer lo que necesita. Aquí hay un ejemplo simple:" #: ../Doc/howto/logging-cookbook.rst:615 msgid "which you can use like this::" -msgstr "" +msgstr "que puede usar así::" #: ../Doc/howto/logging-cookbook.rst:620 msgid "" "Then any events that you log to the adapter will have the value of " "``some_conn_id`` prepended to the log messages." msgstr "" +"Luego, cualquier evento que registre en el adaptador tendrá el valor de " +"``some_conn_id`` antepuesto a los mensajes de registro." #: ../Doc/howto/logging-cookbook.rst:624 msgid "Using objects other than dicts to pass contextual information" msgstr "" +"Usar objetos distintos a los diccionarios para transmitir información " +"contextual" #: ../Doc/howto/logging-cookbook.rst:626 msgid "" @@ -365,10 +542,15 @@ msgid "" "if you want to generate values dynamically (whereas the values in a dict " "would be constant)." msgstr "" +"No es necesario pasar un diccionario real a la :class:`LoggerAdapter` - " +"puedes pasar una instancia de una clase que implemente ``__getitem__`` y " +"``__iter__`` de modo que parezca un diccionario para el logging. Esto es " +"útil si quieres generar valores dinámicamente (mientras que los valores en " +"un diccionario son constantes)." #: ../Doc/howto/logging-cookbook.rst:635 msgid "Using Filters to impart contextual information" -msgstr "" +msgstr "Usar filtros para impartir información contextual" #: ../Doc/howto/logging-cookbook.rst:637 msgid "" @@ -378,6 +560,12 @@ msgid "" "can then be output using a suitable format string, or if needed a custom :" "class:`Formatter`." msgstr "" +"También puedes agregar información contextual a la salida del registro " +"utilizando un :class:`Filter` definido por el usuario. Las instancias de " +"``Filter`` pueden modificar los ``LogRecords`` que se les pasan, incluido el " +"agregado de atributos adicionales que luego se pueden generar utilizando " +"cadena de caracteres con el formato adecuado, o si es necesario, un :class:" +"`Formatter` personalizado." #: ../Doc/howto/logging-cookbook.rst:642 msgid "" @@ -390,16 +578,28 @@ msgid "" "format string can be used to get similar output to that shown above. Here's " "an example script::" msgstr "" +"Por ejemplo, en una aplicación web, la solicitud que se está procesando (o " +"al menos, las partes interesantes de la misma) se pueden almacenar en una " +"variable *threadlocal* (:class:`threading.local`) y luego se puede acceder a " +"ella desde ``Filter`` para agregar información de la solicitud, - digamos, " +"la dirección IP remota y el nombre de usuario-, al ``LogRecord``, usando los " +"nombres de atributo 'ip' y 'user' como en el ejemplo anterior de " +"``LoggerAdapter``. En ese caso, se puede usar el mismo formato de cadena de " +"caracteres para obtener un resultado similar al que se muestra arriba. Aquí " +"hay un script de ejemplo::" #: ../Doc/howto/logging-cookbook.rst:688 msgid "which, when run, produces something like:" -msgstr "" +msgstr "que cuando se ejecuta, produce algo como:" #: ../Doc/howto/logging-cookbook.rst:709 msgid "Logging to a single file from multiple processes" -msgstr "" +msgstr "Logging a un sólo archivo desde múltiples procesos" +# Traté de refrasear las primeras oraciones para que no sea super repetitivo. +# No tengo claro cómo es todo el tema de socket y si está bien traducido "socket server", "working socket". #: ../Doc/howto/logging-cookbook.rst:711 +#, fuzzy msgid "" "Although logging is thread-safe, and logging to a single file from multiple " "threads in a single process *is* supported, logging to a single file from " @@ -414,6 +614,18 @@ msgid "" "includes a working socket receiver which can be used as a starting point for " "you to adapt in your own applications." msgstr "" +"Aunque logging es seguro para subprocesos, y logging a un solo archivo desde " +"múltiples subprocesos en un solo proceso *es* compatible, el registro en un " +"solo archivo desde *múltiples procesos* *no* es compatible, porque no existe " +"una forma estándar de serializar el acceso a un solo archivo en múltiples " +"procesos en Python. Si necesita hacer esto último, una forma de abordarlo es " +"hacer que todos los procesos se registren en una :class:`~handlers." +"SocketHandler`, y tener un proceso separado que implemente un servidor de " +"socket que lee del socket y los registros para archivar. (Si lo prefiere, " +"puede dedicar un hilo en uno de los procesos existentes para realizar esta " +"función.) :ref: `Esta sección ` documenta este enfoque con " +"más detalle e incluye un receptor socket que funciona que se puede utilizar " +"como punto de partida para que se adapte a sus propias aplicaciones" #: ../Doc/howto/logging-cookbook.rst:724 msgid "" @@ -425,6 +637,13 @@ msgid "" "`multiprocessing` module does not provide working lock functionality on all " "platforms (see https://bugs.python.org/issue3770)." msgstr "" +"También puedes escribir tu propio gestor que use la clase :class:" +"`~multiprocessing.Lock` del módulo :mod:`multiprocessing` para serializar el " +"acceso al archivo desde tus procesos. La existente :class:`FileHandler` y " +"las subclases no hacen uso de :mod:`multiprocessing` en la actualidad, " +"aunque pueden hacerlo en el futuro. Tenga en cuenta que, en la actualidad, " +"el módulo :mod:`multiprocessing` no proporciona la funcionalidad de bloqueo " +"de trabajo en todas las plataformas (ver https://bugs.python.org/issue3770)." #: ../Doc/howto/logging-cookbook.rst:734 msgid "" @@ -440,12 +659,25 @@ msgid "" "application, and can be used as the basis for code meeting your own specific " "requirements::" msgstr "" +"Alternativamente, puede usar una ``Queue`` y :class:`QueueHandler` para " +"enviar todos los logging a uno de los procesos en su aplicación multi-" +"proceso. El siguiente script de ejemplo demuestra cómo puede hacer esto; en " +"el ejemplo, un proceso de escucha independiente escucha los eventos enviados " +"por otros procesos y los registra de acuerdo con su propia configuración de " +"registro. Aunque el ejemplo solo demuestra una forma de hacerlo (por " +"ejemplo, es posible que desee utilizar un hilo de escucha en lugar de un " +"proceso de escucha separado; la implementación sería análoga), permite " +"configuraciones de logging completamente diferentes para el oyente y los " +"otros procesos en su aplicación. Y se puede utilizar como base para el " +"código que cumpla con sus propios requisitos específicos::" #: ../Doc/howto/logging-cookbook.rst:850 msgid "" "A variant of the above script keeps the logging in the main process, in a " "separate thread::" msgstr "" +"Una variante del script anterior mantiene el logging en el proceso " +"principal, en un hilo separado::" #: ../Doc/howto/logging-cookbook.rst:945 msgid "" @@ -456,10 +688,16 @@ msgid "" "events are generated in the worker processes) to direct the messages to the " "appropriate destinations." msgstr "" +"Esta variante muestra cómo puede, por ejemplo, aplicar la configuración para " +"logging particulares: el registrador ``foo`` tiene un gestor especial que " +"almacena todos los eventos en el subsistema ``foo`` en un archivo ``mplog-" +"foo.log``. Esto será utilizado por la maquinaria de registro en el proceso " +"principal (aunque los eventos logging se generen en los procesos de trabajo) " +"para dirigir los mensajes a los destinos apropiados." #: ../Doc/howto/logging-cookbook.rst:952 msgid "Using concurrent.futures.ProcessPoolExecutor" -msgstr "" +msgstr "Usando concurrent.futures.ProcessPoolExecutor" #: ../Doc/howto/logging-cookbook.rst:954 msgid "" @@ -467,22 +705,27 @@ msgid "" "your worker processes, you need to create the queue slightly differently. " "Instead of" msgstr "" +"Si desea utilizar :class:`concurrent.futures.ProcessPoolExecutor` para " +"iniciar sus procesos de trabajo, debe crear la cola de manera ligeramente " +"diferente. En vez de" #: ../Doc/howto/logging-cookbook.rst:962 msgid "you should use" -msgstr "" +msgstr "debería usar" +# No sé cómo traducir "worker creation". #: ../Doc/howto/logging-cookbook.rst:968 +#, fuzzy msgid "and you can then replace the worker creation from this::" -msgstr "" +msgstr "y entonces puedes reemplazar::" #: ../Doc/howto/logging-cookbook.rst:979 msgid "to this (remembering to first import :mod:`concurrent.futures`)::" -msgstr "" +msgstr "a esto (recuerda el primer *import* :mod:`concurrent.futures`)::" #: ../Doc/howto/logging-cookbook.rst:987 msgid "Using file rotation" -msgstr "" +msgstr "Usando rotación de archivos" #: ../Doc/howto/logging-cookbook.rst:992 msgid "" @@ -493,12 +736,20 @@ msgid "" "usage pattern, the logging package provides a :class:`~handlers." "RotatingFileHandler`::" msgstr "" +"A veces, se desea dejar que un archivo de registro crezca hasta cierto " +"tamaño y luego abra un nuevo archivo e inicie sesión en él. Es posible que " +"desee conservar una cierta cantidad de estos archivos, y cuando se hayan " +"creado tantos archivos, rote los archivos para que la cantidad de archivos y " +"el tamaño de los archivos permanezcan limitados. Para este patrón de uso, el " +"paquete logging proporciona :class:`~handlers.RotatingFileHandler`::" #: ../Doc/howto/logging-cookbook.rst:1024 msgid "" "The result should be 6 separate files, each with part of the log history for " "the application:" msgstr "" +"El resultado debe ser 6 archivos separados, cada uno con parte del historial " +"de registro de la aplicación:" #: ../Doc/howto/logging-cookbook.rst:1036 msgid "" @@ -507,16 +758,24 @@ msgid "" "``.1``. Each of the existing backup files is renamed to increment the suffix " "(``.1`` becomes ``.2``, etc.) and the ``.6`` file is erased." msgstr "" +"El archivo más actual siempre es :file:`logging_rotatingfile_example.out`, y " +"cada vez que alcanza el límite de tamaño, se le cambia el nombre con el " +"sufijo``.1``. Se cambia el nombre de cada uno de los archivos de respaldo " +"existentes para incrementar el sufijo (``.1`` se convierte en ``.2``, etc.) " +"y se borra el archivo ``.6``." #: ../Doc/howto/logging-cookbook.rst:1041 msgid "" "Obviously this example sets the log length much too small as an extreme " "example. You would want to set *maxBytes* to an appropriate value." msgstr "" +"Obviamente, este ejemplo establece la longitud del registro demasiado " +"pequeña como un ejemplo extremo. Se querrá establecer *maxBytes* en un valor " +"apropiado." #: ../Doc/howto/logging-cookbook.rst:1047 msgid "Use of alternative formatting styles" -msgstr "" +msgstr "Uso de estilos de formato alternativos" #: ../Doc/howto/logging-cookbook.rst:1049 #, python-format @@ -527,6 +786,11 @@ msgid "" "`string.Template` (added in Python 2.4) and :meth:`str.format` (added in " "Python 2.6)." msgstr "" +"Cuando se agregó logging a la biblioteca estándar de Python, la única forma " +"de formatear mensajes con contenido variable era usar el método de formateo " +"'%'. Desde entonces, Python ha ganado dos nuevos enfoques de formato: :class:" +"`string.Template` (agregado en Python 2.4) y :meth:`str.format` (agregado en " +"Python 2.6)." #: ../Doc/howto/logging-cookbook.rst:1055 msgid "" @@ -540,6 +804,16 @@ msgid "" "meth:`str.format` or :class:`string.Template`. Here's an example console " "session to show the possibilities:" msgstr "" +"Logging (a partir de la versión 3.2) proporciona un soporte mejorado para " +"estos dos estilos de formato adicionales. La clase :class:`Formatter` ha " +"sido mejorada para tomar un parámetro de palabra clave adicional llamado " +"``style``. El valor predeterminado es ``'%'``, pero otros valores posibles " +"son ``'{'`` y ``'$'``, que corresponden a los otros dos estilos de formato. " +"La compatibilidad con versiones anteriores se mantiene de forma " +"predeterminada (como era de esperar), pero al especificar explícitamente un " +"parámetro de estilo, tiene la capacidad de especificar cadenas de formato " +"que funcionan con :meth:`str.format` o :class:`string.Template`. Aquí hay " +"una sesión de consola de ejemplo para mostrar las posibilidades:" #: ../Doc/howto/logging-cookbook.rst:1089 #, python-format @@ -548,9 +822,14 @@ msgid "" "completely independent of how an individual logging message is constructed. " "That can still use %-formatting, as shown here::" msgstr "" +"Tenga en cuenta que el formato de logging para la salida final a los " +"registros es completamente independiente de cómo se construye un mensaje de " +"registro individual. Para eso todavía puede usar el formateo \"%\", como se " +"muestra aquí:" +# No entiendo este bloque en inglés ni en español :P #: ../Doc/howto/logging-cookbook.rst:1097 -#, python-format +#, fuzzy, python-format msgid "" "Logging calls (``logger.debug()``, ``logger.info()`` etc.) only take " "positional parameters for the actual logging message itself, with keyword " @@ -565,6 +844,20 @@ msgid "" "logging calls which are out there in existing code will be using %-format " "strings." msgstr "" +"Las llamadas de Logging (``logger.debug()``, ``logger.info()``, etc.) solo " +"toman parámetros posicionales para el mensaje de registro real en sí, con " +"parámetros de palabras clave que se usan solo para determinar opciones sobre " +"cómo gestionar la llamada real a Logging (por ejemplo, el parámetro de " +"palabra clave `` exc_info '' para indicar que la información de rastreo debe " +"registrarse, o el parámetro de palabra clave `` extra '' para indicar " +"información contextual adicional que se agregará al registro). Por lo tanto, " +"no puede realizar llamadas de registro directamente usando la sintaxis: " +"meth: `str.format` o: class:` string.Template`, porque internamente el " +"paquete de registro usa% -formatting para fusionar la cadena de formato y " +"los argumentos de las variables. No habría ningún cambio en esto mientras se " +"conserva la compatibilidad con versiones anteriores, ya que todas las " +"llamadas de registro que están en el código existente usarán cadenas de" +"% -format." #: ../Doc/howto/logging-cookbook.rst:1110 msgid "" @@ -574,6 +867,12 @@ msgid "" "will call ``str()`` on that object to get the actual format string. Consider " "the following two classes::" msgstr "" +"Sin embargo, existe una forma en la que puede usar el formato {} - y $ - " +"para construir sus mensajes de registro individuales. Recuerde que para un " +"mensaje puede usar un objeto arbitrario como una cadena de caracteres de " +"formato de mensaje, y que el paquete logging llamará a ``str()`` en ese " +"objeto para obtener la cadena de carácteres de formato real. Considere las " +"siguientes dos clases::" #: ../Doc/howto/logging-cookbook.rst:1134 #, python-format @@ -586,6 +885,14 @@ msgid "" "__ (double underscore --- not to be confused with _, the single underscore " "used as a synonym/alias for :func:`gettext.gettext` or its brethren)." msgstr "" +"Cualquiera de estos puede usarse en lugar de una cadena de formato, para " +"permitir que se use el formato {} - o $ - para construir la parte del " +"\"mensaje\" real que aparece en la salida del registro en lugar de " +"\"%(message)s\" o \"{message}\" o \"$message\". Es un poco difícil de " +"manejar usar los nombres de las clases siempre que quieras registrar algo, " +"pero es bastante aceptable si usas un alias como __ (doble subrayado --- no " +"confundir con _, el subrayado simple usado como sinónimo/alias para :func:" +"`gettext.gettext` o sus hermanos)." #: ../Doc/howto/logging-cookbook.rst:1142 msgid "" @@ -593,6 +900,10 @@ msgid "" "copy and paste into your own code. They can be used as follows (assuming " "that they're declared in a module called ``wherever``):" msgstr "" +"Las clases anteriores no están incluidas en Python, aunque son bastante " +"fáciles de copiar y pegar en su propio código. Se pueden usar de la " +"siguiente manera (asumiendo que están declaradas en un módulo llamado " +"``wherever``):" #: ../Doc/howto/logging-cookbook.rst:1164 msgid "" @@ -600,6 +911,9 @@ msgid "" "you would of course use ``logger.debug()`` or similar to actually log using " "this approach." msgstr "" +"Si bien los ejemplos anteriores usan ``print()`` para mostrar cómo funciona " +"el formateo, por supuesto usaría ``logger.debug()`` o similar para realmente " +"registrar usando este enfoque." #: ../Doc/howto/logging-cookbook.rst:1168 msgid "" @@ -611,22 +925,34 @@ msgid "" "not just the format string. That's because the __ notation is just syntax " "sugar for a constructor call to one of the XXXMessage classes." msgstr "" +"Una cosa a tener en cuenta es que no paga una penalización de rendimiento " +"significativa con este enfoque: el formateo real no ocurre cuando realiza la " +"llamada a logging, sino cuando (y si) el mensaje registrado está a punto de " +"ser enviado a un registro por un gestor. Entonces, lo único un poco inusual " +"que podría confundirte es que los paréntesis rodean la cadena de formato y " +"los argumentos, no solo la cadena de formato. Eso es porque la notación __ " +"es solo azúcar sintáctico para una llamada de constructor a una de las " +"clases XXXMessage." #: ../Doc/howto/logging-cookbook.rst:1176 msgid "" "If you prefer, you can use a :class:`LoggerAdapter` to achieve a similar " "effect to the above, as in the following example::" msgstr "" +"Si lo prefiere, puede usar :class:`LoggerAdapter` para lograr un efecto " +"similar al anterior, como en el siguiente ejemplo::" #: ../Doc/howto/logging-cookbook.rst:1207 msgid "" "The above script should log the message ``Hello, world!`` when run with " "Python 3.2 or later." msgstr "" +"El script anterior debería registrar el mensaje ``Hello, world!`` Cuando se " +"ejecuta con Python 3.2 o posterior." #: ../Doc/howto/logging-cookbook.rst:1216 msgid "Customizing ``LogRecord``" -msgstr "" +msgstr "Personalización de ``LogRecord``" #: ../Doc/howto/logging-cookbook.rst:1218 msgid "" @@ -638,12 +964,22 @@ msgid "" "disabled). Before Python 3.2, there were only two places where this creation " "was done:" msgstr "" +"Cada evento logging está representado por una instancia :class:`LogRecord`. " +"Cuando se registra un evento y no se filtra por el nivel de un registrador, " +"se crea :class:`LogRecord`, se llena con información sobre el evento y luego " +"se pasa a los gestores de ese registrador (y sus antepasados, hasta (e " +"incluyéndolo) el registrador donde se deshabilita una mayor propagación en " +"la jerarquía). Antes de Python 3.2, solo había dos lugares donde se " +"realizaba esta creación:" #: ../Doc/howto/logging-cookbook.rst:1225 msgid "" ":meth:`Logger.makeRecord`, which is called in the normal process of logging " "an event. This invoked :class:`LogRecord` directly to create an instance." msgstr "" +":meth:`Logger.makeRecord`, que se llama en el proceso normal de registro de " +"un evento. Esto invoca :class:`LogRecord` directamente para crear una " +"instancia." #: ../Doc/howto/logging-cookbook.rst:1228 msgid "" @@ -653,12 +989,19 @@ msgid "" "via a :class:`~handlers.SocketHandler`, or in JSON form via an :class:" "`~handlers.HTTPHandler`)." msgstr "" +":func:`makeLogRecord`, que se llama con un diccionario que contiene " +"atributos que se agregarán al *LogRecord*. Esto se suele invocar cuando se " +"ha recibido un diccionario adecuado a través de la red (por ejemplo, en " +"forma de *pickle* a través de :class:`~handlers.SocketHandler`, o en formato " +"JSON a través de :class:`~handlers.HTTPHandler`)." #: ../Doc/howto/logging-cookbook.rst:1234 msgid "" "This has usually meant that if you need to do anything special with a :class:" "`LogRecord`, you've had to do one of the following." msgstr "" +"Por lo general, esto significa que si necesita hacer algo especial con :" +"class:`LogRecord`, debe hacer una de las siguientes cosas." #: ../Doc/howto/logging-cookbook.rst:1237 msgid "" @@ -666,6 +1009,9 @@ msgid "" "makeRecord`, and set it using :func:`~logging.setLoggerClass` before any " "loggers that you care about are instantiated." msgstr "" +"Cree su propia subclase :class:`Logger`, que anula :meth:`Logger." +"makeRecord`, y configúrelo usando :func:`~logging.setLoggerClass` antes de " +"que se creen instancias de los registradores que le interesan." #: ../Doc/howto/logging-cookbook.rst:1240 msgid "" @@ -673,6 +1019,9 @@ msgid "" "special manipulation you need when its :meth:`~Filter.filter` method is " "called." msgstr "" +"Agregua un :class:`Filter` a un registrador o gestor, que realiza la " +"manipulación especial necesaria que necesita cuando se llama a su método :" +"meth:`~Filter.filter`." #: ../Doc/howto/logging-cookbook.rst:1244 msgid "" @@ -681,6 +1030,10 @@ msgid "" "attempt to set its own :class:`Logger` subclass, and the one which did this " "last would win." msgstr "" +"El primer enfoque sería un poco difícil de manejar en el escenario en el que " +"(digamos) varias bibliotecas diferentes quisieran hacer cosas diferentes. " +"Cada uno intentaría establecer su propia subclase :class:`Logger`, y el que " +"hiciera esto último ganaría." #: ../Doc/howto/logging-cookbook.rst:1249 msgid "" @@ -690,6 +1043,12 @@ msgid "" "to remember to do this every time they introduced a new logger (which they " "would do simply by adding new packages or modules and doing ::" msgstr "" +"El segundo enfoque funciona razonablemente bien en muchos casos, pero no le " +"permite, por ejemplo, usar una subclase especializada de :class:`LogRecord`. " +"Los desarrolladores de bibliotecas pueden establecer un filtro adecuado en " +"sus registradores, pero tendrían que recordar hacerlo cada vez que " +"introduzcan un nuevo registrador (lo que harían simplemente agregando nuevos " +"paquetes o módulos y haciendo ::" #: ../Doc/howto/logging-cookbook.rst:1257 msgid "" @@ -700,8 +1059,16 @@ msgid "" "so output from that handler would not reflect the intentions of the library " "developer." msgstr "" +"a nivel de módulo). Probablemente sean demasiadas cosas en las que pensar. " +"Los desarrolladores también podrían agregar el filtro a :class:`~logging." +"NullHandler` adjunto a su registrador de nivel superior, pero esto no se " +"invocaría si un desarrollador de aplicaciones adjuntara un controlador a un " +"registrador de biblioteca de nivel inferior --- así que la salida de ese " +"gestor no reflejaría las intenciones del desarrollador de la biblioteca." +# ¿"fábrica"? #: ../Doc/howto/logging-cookbook.rst:1263 +#, fuzzy msgid "" "In Python 3.2 and later, :class:`~logging.LogRecord` creation is done " "through a factory, which you can specify. The factory is just a callable you " @@ -710,6 +1077,12 @@ msgid "" "signature as the :class:`~logging.LogRecord` constructor, as :class:" "`LogRecord` is the default setting for the factory." msgstr "" +"En Python 3.2 y posterior, la creación :class:`~logging.LogRecord` se " +"realiza a través de una fábrica, que puede especificar. La fábrica es solo " +"un invocable que puede configurar con :func:`~logging.setLogRecordFactory`, " +"e interrogar con :func:`~logging.getLogRecordFactory`. La fábrica se invoca " +"con la misma firma que el constructor :class:`~logging.LogRecord`, ya que :" +"class:`LogRecord` es la configuración predeterminada de la fábrica." #: ../Doc/howto/logging-cookbook.rst:1270 msgid "" @@ -718,6 +1091,10 @@ msgid "" "additional attributes to the record once created, using a pattern similar to " "this::" msgstr "" +"Este enfoque permite que una fábrica personalizada controle todos los " +"aspectos de la creación de *LogRecord*. Por ejemplo, podría devolver una " +"subclase, o simplemente agregar algunos atributos adicionales al registro " +"una vez creado, usando un patrón similar a este::" #: ../Doc/howto/logging-cookbook.rst:1283 msgid "" @@ -728,10 +1105,17 @@ msgid "" "time overhead to all logging operations, and the technique should only be " "used when the use of a :class:`Filter` does not provide the desired result." msgstr "" +"Este patrón permite que diferentes bibliotecas encadenen fábricas juntas, y " +"siempre que no sobrescriban los atributos de las demás o sobrescriban " +"involuntariamente los atributos proporcionados como estándar, no debería " +"haber sorpresas. Sin embargo, debe tenerse en cuenta que cada eslabón de la " +"cadena agrega una sobrecarga de tiempo de ejecución a todas las operaciones " +"de registro, y la técnica solo debe usarse cuando el uso de :class:`Filter` " +"no proporciona el resultado deseado." #: ../Doc/howto/logging-cookbook.rst:1294 msgid "Subclassing QueueHandler - a ZeroMQ example" -msgstr "" +msgstr "Subclasificación QueueHandler - un ejemplo de ZeroMQ" #: ../Doc/howto/logging-cookbook.rst:1296 msgid "" @@ -739,58 +1123,67 @@ msgid "" "of queues, for example a ZeroMQ 'publish' socket. In the example below,the " "socket is created separately and passed to the handler (as its 'queue')::" msgstr "" +"Puede usar una subclase :class:`QueueHandler` para enviar mensajes a otros " +"tipos de colas, por ejemplo, un socket de 'publicación' ZeroMQ. En el " +"siguiente ejemplo, el socket se crea por separado y se pasa al gestor (como " +"su 'cola')::" #: ../Doc/howto/logging-cookbook.rst:1315 msgid "" "Of course there are other ways of organizing this, for example passing in " "the data needed by the handler to create the socket::" msgstr "" +"Por supuesto, hay otras formas de organizar esto, por ejemplo, pasando los " +"datos que necesita el gestor para crear el socket::" #: ../Doc/howto/logging-cookbook.rst:1333 msgid "Subclassing QueueListener - a ZeroMQ example" -msgstr "" +msgstr "Subclasificación QueueListener - un ejemplo de ZeroMQ" #: ../Doc/howto/logging-cookbook.rst:1335 msgid "" "You can also subclass :class:`QueueListener` to get messages from other " "kinds of queues, for example a ZeroMQ 'subscribe' socket. Here's an example::" msgstr "" +"También puede subclasificar :class:`QueueListener` para obtener mensajes de " +"otros tipos de colas, por ejemplo, un socket de 'suscripción' de ZeroMQ. " +"Aquí tienes un ejemplo::" #: ../Doc/howto/logging-cookbook.rst:1354 msgid "Module :mod:`logging`" -msgstr "" +msgstr "Módulo :mod:`logging`" #: ../Doc/howto/logging-cookbook.rst:1354 msgid "API reference for the logging module." -msgstr "" +msgstr "Referencia de API para el módulo logging" #: ../Doc/howto/logging-cookbook.rst:1357 msgid "Module :mod:`logging.config`" -msgstr "" +msgstr "Módulo :mod:`logging.config`" #: ../Doc/howto/logging-cookbook.rst:1357 msgid "Configuration API for the logging module." -msgstr "" +msgstr "API de configuración para el módulo logging." #: ../Doc/howto/logging-cookbook.rst:1360 msgid "Module :mod:`logging.handlers`" -msgstr "" +msgstr "Módulo :mod:`logging.handlers`" #: ../Doc/howto/logging-cookbook.rst:1360 msgid "Useful handlers included with the logging module." -msgstr "" +msgstr "Gestores útiles incluidos con el módulo logging" #: ../Doc/howto/logging-cookbook.rst:1362 msgid ":ref:`A basic logging tutorial `" -msgstr "" +msgstr ":ref:`Un tutorial básico de logging `" #: ../Doc/howto/logging-cookbook.rst:1364 msgid ":ref:`A more advanced logging tutorial `" -msgstr "" +msgstr ":ref:`Un tutorial de logging más avanzado `" #: ../Doc/howto/logging-cookbook.rst:1368 msgid "An example dictionary-based configuration" -msgstr "" +msgstr "Una configuración de ejemplo basada en diccionario." #: ../Doc/howto/logging-cookbook.rst:1370 msgid "" @@ -799,6 +1192,11 @@ msgid "" "en/1.9/topics/logging/#configuring-logging>`_. This dictionary is passed to :" "func:`~config.dictConfig` to put the configuration into effect::" msgstr "" +"A continuación se muestra un ejemplo de un diccionario de configuración de " +"logging, tomado de la `documentación del proyecto Django `_. Este " +"diccionario se pasa a :func:`~config.dictConfig` para poner en efecto la " +"configuración::" #: ../Doc/howto/logging-cookbook.rst:1426 msgid "" @@ -806,16 +1204,24 @@ msgid "" "section `_ of the Django documentation." msgstr "" +"Para obtener más información sobre esta configuración, puede ver la `sección " +"correspondiente `_ de la documentación de Django." #: ../Doc/howto/logging-cookbook.rst:1433 msgid "Using a rotator and namer to customize log rotation processing" msgstr "" +"Usar un rotador y un nombre para personalizar el procesamiento de rotación " +"de registros" #: ../Doc/howto/logging-cookbook.rst:1435 msgid "" "An example of how you can define a namer and rotator is given in the " "following snippet, which shows zlib-based compression of the log file::" msgstr "" +"Un ejemplo de cómo puede definir un nombre y un rotador se da en el " +"siguiente fragmento, que muestra la compresión basada en zlib del archivo de " +"registro::" #: ../Doc/howto/logging-cookbook.rst:1453 msgid "" @@ -823,10 +1229,13 @@ msgid "" "\"container\" such as you’d find in an actual gzip file. This snippet is " "just for illustration purposes." msgstr "" +"Estos no son archivos .gz \"verdaderos\", ya que son datos comprimidos sin " +"ningún \"contenedor\" como el que encontraría en un archivo gzip real. Este " +"fragmento es solo para fines ilustrativos." #: ../Doc/howto/logging-cookbook.rst:1458 msgid "A more elaborate multiprocessing example" -msgstr "" +msgstr "Un ejemplo de multiprocesamiento más elaborado" #: ../Doc/howto/logging-cookbook.rst:1460 msgid "" @@ -835,8 +1244,14 @@ msgid "" "simple, but serve to illustrate how more complex ones could be implemented " "in a real multiprocessing scenario." msgstr "" +"El siguiente ejemplo de trabajo muestra cómo logging se puede usar con " +"multiprocesamiento usando archivos de configuración. Las configuraciones son " +"bastante simples, pero sirven para ilustrar cómo se podrían implementar las " +"más complejas en un escenario real de multiprocesamiento." +# En algunas lineas anteriores me pasa lo mismo. No sé muy bien qué significa y cómo traducir "listener process" y "worker processes". Separé en varias oraciones para que sea más fluida la lectura. #: ../Doc/howto/logging-cookbook.rst:1465 +#, fuzzy msgid "" "In the example, the main process spawns a listener process and some worker " "processes. Each of the main process, the listener and the workers have three " @@ -848,16 +1263,28 @@ msgid "" "purely illustrative, but you should be able to adapt this example to your " "own scenario." msgstr "" +"En el ejemplo, el proceso principal genera un proceso de escucha y algunos " +"procesos de trabajo. Cada uno de los procesos principales, el oyente y los " +"de trabajo tienen tres configuraciones separadas (todos los de trabajo " +"comparten la misma configuración). Podemos ver el registro en el proceso " +"principal, cómo los de trabajo inician sesión en un *QueueHandler* y cómo el " +"oyente implementa un *QueueListener*. Este último con una configuración de " +"registro más compleja, organiza el envío de eventos recibidos a través de la " +"cola a los gestores especificados en la configuración. Tenga en cuenta que " +"estas configuraciones son puramente ilustrativas, pero usted debe ser capaz " +"de adaptar este ejemplo a su propio escenario." #: ../Doc/howto/logging-cookbook.rst:1475 msgid "" "Here's the script - the docstrings and the comments hopefully explain how it " "works::" msgstr "" +"Aquí está el script, el docstrings y los comentarios, esperemos, expliquen " +"cómo funciona::" #: ../Doc/howto/logging-cookbook.rst:1687 msgid "Inserting a BOM into messages sent to a SysLogHandler" -msgstr "" +msgstr "Insertar BOM en mensajes enviados a SysLogHandler" #: ../Doc/howto/logging-cookbook.rst:1689 msgid "" @@ -867,6 +1294,12 @@ msgid "" "encoded using UTF-8. (See the :rfc:`relevant section of the specification " "<5424#section-6>`.)" msgstr "" +":rfc:`5424` requiere que se envíe un mensaje Unicode a un demonio syslog " +"como un conjunto de bytes que tienen la siguiente estructura: un componente " +"opcional puro-ASCII, seguido de una Marca de Orden de Bytes UTF-8 (*BOM* por " +"sus siglas en inglés), seguida de codificado en Unicode usando UTF-8. " +"(Consulte la :rfc:`sección relevante de la especificación <5424 # " +"section-6>`.)" #: ../Doc/howto/logging-cookbook.rst:1695 msgid "" @@ -875,6 +1308,10 @@ msgid "" "incorrectly, with the BOM appearing at the beginning of the message and " "hence not allowing any pure-ASCII component to appear before it." msgstr "" +"En Python 3.1, se agregó código a :class:`~logging.handlers.SysLogHandler` " +"para insertar BOM en el mensaje, pero desafortunadamente, se implementó " +"incorrectamente, BOM aparece al principio del mensaje y, por lo tanto, no " +"permite ningun componente ASCII puro para que aparezca antes." #: ../Doc/howto/logging-cookbook.rst:1701 msgid "" @@ -884,18 +1321,29 @@ msgid "" "an optional pure-ASCII sequence before it and arbitrary Unicode after it, " "encoded using UTF-8, then you need to do the following:" msgstr "" +"Como este comportamiento no funciona, el código de inserción BOM incorrecto " +"se elimina de Python 3.2.4 y versiones posteriores. Sin embargo, no se está " +"reemplazando, y si desea producir mensajes compatibles con :rfc:`5424` que " +"incluyan BOM, una secuencia opcional de ASCII puro antes y Unicode " +"arbitrario después, codificados usando UTF-8; entonces necesita hacer lo " +"siguiente:" #: ../Doc/howto/logging-cookbook.rst:1707 msgid "" "Attach a :class:`~logging.Formatter` instance to your :class:`~logging." "handlers.SysLogHandler` instance, with a format string such as::" msgstr "" +"Adjunte una instancia de :class:`~logging.Formatter` a su instancia :class:" +"`~logging.handlers.SysLogHandler`, con una cadena de caracteres de formato " +"como::" #: ../Doc/howto/logging-cookbook.rst:1713 msgid "" "The Unicode code point U+FEFF, when encoded using UTF-8, will be encoded as " "a UTF-8 BOM -- the byte-string ``b'\\xef\\xbb\\xbf'``." msgstr "" +"El punto de código Unicode U+ FEFF, cuando se codifica usando UTF-8, se " +"codificará como una BOM UTF-8, la cadena de bytes ``b'\\xef\\xbb\\xbf'``." #: ../Doc/howto/logging-cookbook.rst:1716 msgid "" @@ -903,6 +1351,10 @@ msgid "" "that the data that appears in there after substitution is always ASCII (that " "way, it will remain unchanged after UTF-8 encoding)." msgstr "" +"Reemplace la sección ASCII con los marcadores de posición que desee, pero " +"asegúrese de que los datos que aparecen allí después de la sustitución sean " +"siempre ASCII (de esa manera, permanecerán sin cambios después de la " +"codificación UTF-8)." #: ../Doc/howto/logging-cookbook.rst:1720 msgid "" @@ -910,6 +1362,9 @@ msgid "" "which appears there after substitution contains characters outside the ASCII " "range, that's fine -- it will be encoded using UTF-8." msgstr "" +"Reemplace la sección Unicode con los marcadores de posición que desee; si " +"los datos que aparecen allí después de la sustitución contienen caracteres " +"fuera del rango ASCII, está bien: se codificarán usando UTF-8." #: ../Doc/howto/logging-cookbook.rst:1724 msgid "" @@ -919,12 +1374,19 @@ msgid "" "complain, but your messages will not be RFC 5424-compliant, and your syslog " "daemon may complain." msgstr "" +"El mensaje formateado *se* codificará utilizando la codificación UTF-8 por " +"``SysLogHandler``. Si sigue las reglas anteriores, debería poder producir " +"mensajes compatibles con :rfc:`5424`. Si no lo hace, es posible que el " +"registro no se queje, pero sus mensajes no serán compatibles con RFC 5424 y " +"su demonio syslog puede quejarse." #: ../Doc/howto/logging-cookbook.rst:1731 msgid "Implementing structured logging" -msgstr "" +msgstr "Implementar logging estructurado" +# Me quedan dudas con la frase final: "analizable por computadora" #: ../Doc/howto/logging-cookbook.rst:1733 +#, fuzzy msgid "" "Although most logging messages are intended for reading by humans, and thus " "not readily machine-parseable, there might be circumstances where you want " @@ -935,10 +1397,18 @@ msgid "" "following is a simple approach which uses JSON to serialise the event in a " "machine-parseable manner::" msgstr "" +"Aunque la mayoría de los mensajes de logging están destinados a ser leídos " +"por humanos y, por lo tanto, no se pueden analizar fácilmente mediante una " +"máquina, puede haber circunstancias en las que desee generar mensajes en un " +"formato estructurado que *sea* capaz de ser analizado por un programa (sin " +"necesidad de expresiones regulares complejas para analizar el mensaje de " +"registro). Esto es sencillo de lograr utilizando el paquete logging. Hay " +"varias formas de lograr esto, pero el siguiente es un enfoque simple que usa " +"JSON para serializar el evento de una manera analizable por computadora:" #: ../Doc/howto/logging-cookbook.rst:1757 msgid "If the above script is run, it prints:" -msgstr "" +msgstr "Si se ejecuta el script anterior, se imprime:" #: ../Doc/howto/logging-cookbook.rst:1763 #: ../Doc/howto/logging-cookbook.rst:1812 @@ -946,20 +1416,24 @@ msgid "" "Note that the order of items might be different according to the version of " "Python used." msgstr "" +"Tenga en cuenta que el orden de los elementos puede ser diferente según la " +"versión de Python utilizada." #: ../Doc/howto/logging-cookbook.rst:1766 msgid "" "If you need more specialised processing, you can use a custom JSON encoder, " "as in the following complete example::" msgstr "" +"Si necesita un procesamiento más especializado, puede utilizar un " +"codificador JSON personalizado, como en el siguiente ejemplo completo::" #: ../Doc/howto/logging-cookbook.rst:1806 msgid "When the above script is run, it prints:" -msgstr "" +msgstr "Cuando se ejecuta el script anterior, se imprime:" #: ../Doc/howto/logging-cookbook.rst:1821 msgid "Customizing handlers with :func:`dictConfig`" -msgstr "" +msgstr "Personalización de gestores con :func:`dictConfig`" #: ../Doc/howto/logging-cookbook.rst:1823 msgid "" @@ -970,12 +1444,21 @@ msgid "" "the file handlers in the stdlib don't offer built-in support. You can " "customize handler creation using a plain function such as::" msgstr "" +"Hay ocasiones en las que desea personalizar los gestores de logging de " +"formas particulares, y si usa :func: `dictConfig` puede hacerlo sin " +"subclases. Como ejemplo, considere que es posible que desee establecer la " +"propiedad de un archivo de registro. En POSIX, esto se hace fácilmente " +"usando :func:`shutil.chown`, pero los gestores de archivos en stdlib no " +"ofrecen soporte integrado. Puede personalizar la creación de gestores usando " +"una función simple como::" #: ../Doc/howto/logging-cookbook.rst:1837 msgid "" "You can then specify, in a logging configuration passed to :func:" "`dictConfig`, that a logging handler be created by calling this function::" msgstr "" +"Luego puede especificar, en una configuración de logging pasada a :func:" +"`dictConfig`, que se cree un gestor de logging llamando a esta función::" #: ../Doc/howto/logging-cookbook.rst:1870 msgid "" @@ -983,10 +1466,14 @@ msgid "" "group, just for the purposes of illustration. Putting it together into a " "working script, ``chowntest.py``::" msgstr "" +"En este ejemplo, se establece la propiedad utilizando el usuario y el grupo " +"``pulse``, solo con fines ilustrativos. Poniéndolo junto en un script de " +"trabajo, ``chowntest.py``::" #: ../Doc/howto/logging-cookbook.rst:1917 msgid "To run this, you will probably need to run as ``root``:" msgstr "" +"Para ejecutar esto, probablemente se necesite ejecutarlo como ``root``:" #: ../Doc/howto/logging-cookbook.rst:1927 msgid "" @@ -996,16 +1483,24 @@ msgid "" "With pre-3.3 versions, you would need to implement the actual ownership " "change using e.g. :func:`os.chown`." msgstr "" +"Tenga en cuenta que este ejemplo usa Python 3.3 porque ahí es donde :func:" +"`shutil.chown` aparece. Este enfoque debería funcionar con cualquier versión " +"de Python que admita :func:`dictConfig`, es decir, Python 2.7, 3.2 o " +"posterior. Con las versiones anteriores a 3.3, necesitaría implementar el " +"cambio de propiedad real usando, por ejemplo, :func:`os.chown`." #: ../Doc/howto/logging-cookbook.rst:1933 msgid "" "In practice, the handler-creating function may be in a utility module " "somewhere in your project. Instead of the line in the configuration::" msgstr "" +"En la práctica, la función de creación de gestores puede estar en un módulo " +"de utilidad en algún lugar de su proyecto. En lugar de la línea en la " +"configuración::" #: ../Doc/howto/logging-cookbook.rst:1938 msgid "you could use e.g.::" -msgstr "" +msgstr "podrías usar, por ejemplo,::" #: ../Doc/howto/logging-cookbook.rst:1942 msgid "" @@ -1014,6 +1509,11 @@ msgid "" "__main__.owned_file_handler'`` should work. Here, the actual callable is " "resolved by :func:`dictConfig` from the ``ext://`` specification." msgstr "" +"donde ``project.util`` se puede reemplazar con el nombre real del paquete " +"donde reside la función. En el script de trabajo anterior, el uso de " +"``'ext://__main__.owned_file_handler'`` debería funcionar. Aquí, el " +"invocable real se resuelve mediante :func:`dictConfig` de la especificación " +"``ext://``." #: ../Doc/howto/logging-cookbook.rst:1947 msgid "" @@ -1021,6 +1521,9 @@ msgid "" "types of file change - e.g. setting specific POSIX permission bits - in the " "same way, using :func:`os.chmod`." msgstr "" +"Por furtuna, este ejemplo también indica el camino hacia cómo podría " +"implementar otros tipos de cambio de archivo, por ejemplo, configurando de " +"la misma manera bits de permisos POSIX específicos, usando :func:`os.chmod`." #: ../Doc/howto/logging-cookbook.rst:1951 msgid "" @@ -1028,10 +1531,13 @@ msgid "" "than a :class:`~logging.FileHandler` - for example, one of the rotating file " "handlers, or a different type of handler altogether." msgstr "" +"Por supuesto, el enfoque también podría extenderse a tipos de gestores " +"distintos a :class:`~logging.FileHandler` - por ejemplo, uno de los gestores " +"de archivos rotativos, o un tipo diferente por completo." #: ../Doc/howto/logging-cookbook.rst:1961 msgid "Using particular formatting styles throughout your application" -msgstr "" +msgstr "Usar estilos de formato particulares en toda su aplicación" #: ../Doc/howto/logging-cookbook.rst:1963 msgid "" @@ -1043,6 +1549,13 @@ msgid "" "to logs, and is completely orthogonal to how an individual logging message " "is constructed." msgstr "" +"En Python 3.2, :class:`~logging.Formatter` obtuvo un parámetro de palabra " +"clave ``estilo`` que, aunque por defecto era ``%`` para compatibilidad con " +"versiones anteriores, permitía la especificación de ``{`` o ``$`` para " +"permitir los enfoques de formato admitidos por :meth`str.format` y :class:" +"`string.Template`. Tenga en cuenta que esto rige el formato de los mensajes " +"de logging para la salida final a los registros y es completamente ortogonal " +"a cómo se construye un mensaje de registro individual." #: ../Doc/howto/logging-cookbook.rst:1970 #, python-format @@ -1059,6 +1572,19 @@ msgid "" "changing this while preserving backward compatibility, since all logging " "calls which are out there in existing code will be using %-format strings." msgstr "" +"Las llamadas de logging (:meth:`~Logger.debug`, :meth:`~Logger.info`, etc.) " +"solo toman parámetros posicionales para el mensaje logging real en sí, con " +"parámetros de palabras clave que se utilizan solo para determinar las " +"opciones sobre cómo manejar la llamada de logging (por ejemplo, el parámetro " +"de palabra clave ``exc_info`` para indicar que la información de rastreo " +"debe registrarse, o el parámetro de palabra clave ``extra`` para indicar " +"información contextual adicional que se agregará al registro). Por lo tanto, " +"no puede realizar llamadas de logging directamente usando la sintaxis :meth:" +"`str.format` o :class:`string.Template`, porque internamente el paquete " +"logging usa formato % para fusionar la cadena de formato y los argumentos de " +"las variables. No se cambiaría esto mientras se conserve la compatibilidad " +"con versiones anteriores, ya que todas las llamadas de registro que están en " +"el código existente utilizarán cadenas de caracteres formato %." #: ../Doc/howto/logging-cookbook.rst:1982 #, python-format @@ -1068,6 +1594,10 @@ msgid "" "because any existing code could be using a given logger name and using " "%-formatting." msgstr "" +"Ha habido sugerencias para asociar estilos de formato con *loggers* " +"específicos, pero ese enfoque también tiene problemas de compatibilidad con " +"versiones anteriores porque cualquier código existente podría estar usando " +"un nombre de *logger* dado y usando formato %." #: ../Doc/howto/logging-cookbook.rst:1986 msgid "" @@ -1076,10 +1606,14 @@ msgid "" "individual logging call. This opens up a couple of ways in which alternative " "formatting styles can be accommodated." msgstr "" +"Para que logging funcione de manera interoperable entre cualquier biblioteca " +"de terceros y su código, las decisiones sobre el formato deben tomarse a " +"nivel de la llamada de logging individual. Esto abre un par de formas en las " +"que se pueden acomodar estilos de formato alternativos." #: ../Doc/howto/logging-cookbook.rst:1993 msgid "Using LogRecord factories" -msgstr "" +msgstr "Uso de fábricas de LogRecord" #: ../Doc/howto/logging-cookbook.rst:1995 #, python-format @@ -1096,16 +1630,30 @@ msgid "" "code. Care should also be taken to call ``str(self.msg)``, just as the base " "implementation does." msgstr "" +"En Python 3.2, junto con los cambios de :class:`~logging.Formatter` " +"mencionados anteriormente, el paquete logging ganó la capacidad de permitir " +"a los usuarios establecer sus propias subclases :class:`LogRecord`, usando " +"la función :func:`setLogRecordFactory`. Puede usar esto para configurar su " +"propia subclase de :class:`LogRecord`, que hace lo correcto al anular el " +"método :meth:`~LogRecord.getMessage`. La implementación de la clase base de " +"este método es donde ocurre el formato ``msg % args`` y donde puede " +"sustituir su formato alternativo; sin embargo, debe tener cuidado de admitir " +"todos los estilos de formato y permitir formato % como predeterminado, para " +"garantizar la interoperabilidad con otro código. También se debe tener " +"cuidado de llamar a ``str(self.msg)``, tal como lo hace la implementación " +"base." #: ../Doc/howto/logging-cookbook.rst:2006 msgid "" "Refer to the reference documentation on :func:`setLogRecordFactory` and :" "class:`LogRecord` for more information." msgstr "" +"Consulte la documentación de referencia en :func:`setLogRecordFactory` y :" +"class: `LogRecord` para obtener más información." #: ../Doc/howto/logging-cookbook.rst:2011 msgid "Using custom message objects" -msgstr "" +msgstr "Usar objetos de mensaje personalizados" #: ../Doc/howto/logging-cookbook.rst:2013 msgid "" @@ -1116,6 +1664,13 @@ msgid "" "func:`str` on that object to get the actual format string. Consider the " "following two classes::" msgstr "" +"Existe otra forma, quizás más sencilla, de usar el formato {} - y $ - para " +"construir sus mensajes de registro individuales. Al iniciar sesión, recuerde " +"que puede usar cualquier objeto como una cadena de caracteres de formato de " +"mensaje (:ref:`arbitrary-object-messages`) que al iniciar sesión puede usar " +"un objeto arbitrario como una cadena de formato de mensaje, y que el paquete " +"de registro llamará: func:` str` en ese objeto para obtener el cadena de " +"formato real. Considere las siguientes dos clases:" #: ../Doc/howto/logging-cookbook.rst:2038 #, python-format @@ -1128,16 +1683,25 @@ msgid "" "alias such as ``M`` or ``_`` for the message (or perhaps ``__``, if you are " "using ``_`` for localization)." msgstr "" +"Cualquiera de estos puede usarse en lugar de una cadena de formato, para " +"permitir que se use el formato {} - o $ - para construir la parte del " +"\"mensaje\" real que aparece en la salida del registro formateado en lugar " +"de “%(message)s” or “{message}” or “$message”. Si le resulta un poco difícil " +"de manejar usar los nombres de las clases cada vez que desea registrar algo, " +"puede hacerlo más tolerable si usa un alias como ``M`` o ``_`` para el " +"mensaje (o quizás ``__``, si está utilizando``_`` para localización)." #: ../Doc/howto/logging-cookbook.rst:2046 msgid "" "Examples of this approach are given below. Firstly, formatting with :meth:" "`str.format`::" msgstr "" +"A continuación se dan ejemplos de este enfoque. En primer lugar, formatear " +"con :meth:`str.format`::" #: ../Doc/howto/logging-cookbook.rst:2060 msgid "Secondly, formatting with :class:`string.Template`::" -msgstr "" +msgstr "En segundo lugar, formatear con :class:`string.Template`" #: ../Doc/howto/logging-cookbook.rst:2067 msgid "" @@ -1150,10 +1714,19 @@ msgid "" "sugar for a constructor call to one of the ``XXXMessage`` classes shown " "above." msgstr "" +"Una cosa a tener en cuenta es que no paga ninguna penalización significativa " +"del rendimiento con este enfoque: el formato real no se produce cuando se " +"realiza la llamada logging, sino cuando (y si) el mensaje registrado está " +"realmente a punto de ser salida a un registro por un gestor. Así que lo " +"único un poco inusual con lo que podría tropezar es que los paréntesis van " +"alrededor de la cadena de caracteres de formato y los argumentos, no sólo la " +"cadena de formato. Esto se debe a que la notación __ es solo azúcar " +"sintáctico para una llamada de constructor a una de las clases " +"``XXXMessage`` mostradas anteriormente." #: ../Doc/howto/logging-cookbook.rst:2081 msgid "Configuring filters with :func:`dictConfig`" -msgstr "" +msgstr "Configurar filtros con :func:`dictConfig`" #: ../Doc/howto/logging-cookbook.rst:2083 msgid "" @@ -1169,6 +1742,17 @@ msgid "" "callable which returns a :class:`~logging.Filter` instance). Here is a " "complete example::" msgstr "" +"*Puedes* configurar filtros usando :func:`~logging.config.dictConfig`, " +"aunque a primera vista es posible que no sea obvio cómo hacerlo (de ahí esta " +"receta). Dado que :class:`~logging.Filter` es la única clase de filtro " +"incluida en la biblioteca estándar, y es poco probable que satisfaga muchos " +"requisitos (solo está allí como clase base), normalmente necesitarás definir " +"tu propia subclase :class:`~logging.Filter` con un método :meth:`~logging." +"Filter.filter` sobreescrito. Para hacer esto, especifique la clave ``()`` en " +"el diccionario de configuración para el filtro, especificando un invocable " +"que se usará para crear el filtro (una clase es la más obvia, pero puede " +"proporcionar cualquier invocable que devuelva una instancia :class:`~logging." +"Filter`). Aquí hay un ejemplo completo:" #: ../Doc/howto/logging-cookbook.rst:2136 msgid "" @@ -1176,14 +1760,17 @@ msgid "" "constructs the instance, in the form of keyword parameters. When run, the " "above script will print:" msgstr "" +"Este ejemplo muestra cómo puede pasar datos de configuración al invocable " +"que construye la instancia, en forma de parámetros de palabras clave. Cuando " +"se ejecuta, se imprimirá el script anterior:" #: ../Doc/howto/logging-cookbook.rst:2144 msgid "which shows that the filter is working as configured." -msgstr "" +msgstr "que muestra que el filtro está funcionando según lo configurado." #: ../Doc/howto/logging-cookbook.rst:2146 msgid "A couple of extra points to note:" -msgstr "" +msgstr "Un par de puntos adicionales a tener en cuenta:" #: ../Doc/howto/logging-cookbook.rst:2148 msgid "" @@ -1194,6 +1781,12 @@ msgid "" "have used the text ``'ext://__main__.MyFilter'`` instead of ``MyFilter`` in " "the above example." msgstr "" +"Si no puede hacer referencia al invocable directamente en la configuración " +"(por ejemplo, si vive en un módulo diferente y no puede importarlo " +"directamente donde está el diccionario de configuración), puede usar el " +"formulario ``ext://...`` como se describe en :ref:`logging-config-dict-" +"externalobj`. Por ejemplo, podría haber usado el texto ``'ext://__main__." +"MyFilter'`` en lugar de ``MyFilter`` en el ejemplo anterior." #: ../Doc/howto/logging-cookbook.rst:2155 msgid "" @@ -1203,10 +1796,15 @@ msgid "" "configuration, and see the other cookbook recipe :ref:`custom-handlers` " "above." msgstr "" +"Además de los filtros, esta técnica también se puede utilizar para " +"configurar gestores y formateadores personalizados. Consultar :ref:`logging-" +"config-dict-userdef` para obtener más información sobre cómo logging admite " +"el uso de objetos definidos por el usuario en su configuración, y ver arriba " +"la otra receta :ref:`custom-handlers`." #: ../Doc/howto/logging-cookbook.rst:2164 msgid "Customized exception formatting" -msgstr "" +msgstr "Formato de excepción personalizado" #: ../Doc/howto/logging-cookbook.rst:2166 msgid "" @@ -1215,10 +1813,15 @@ msgid "" "even when exception information is present. You can do this with a custom " "formatter class, as shown in the following example::" msgstr "" +"Puede haber ocasiones en las que desee personalizar un formato de excepción; " +"por el bien del argumento, digamos que desea exactamente una línea por " +"evento registrado, incluso cuando la información de la excepción está " +"presente. Puede hacer esto con una clase de formateador personalizada, como " +"se muestra en el siguiente ejemplo::" #: ../Doc/howto/logging-cookbook.rst:2207 msgid "When run, this produces a file with exactly two lines:" -msgstr "" +msgstr "Cuando se ejecuta, esto produce un archivo con exactamente dos líneas:" #: ../Doc/howto/logging-cookbook.rst:2214 msgid "" @@ -1226,10 +1829,13 @@ msgid "" "information can be formatted to your liking. The :mod:`traceback` module may " "be helpful for more specialized needs." msgstr "" +"Si bien el tratamiento anterior es simplista, señala el camino hacia cómo se " +"puede formatear la información de excepción a su gusto. El módulo :mod:" +"`traceback` puede resultar útil para necesidades más especializadas." #: ../Doc/howto/logging-cookbook.rst:2221 msgid "Speaking logging messages" -msgstr "" +msgstr "Mensajes de registro hablantes" #: ../Doc/howto/logging-cookbook.rst:2223 msgid "" @@ -1247,12 +1853,29 @@ msgid "" "other handlers to be kept waiting. Here is a short example showing the " "approach, which assumes that the ``espeak`` TTS package is available::" msgstr "" +"Puede haber situaciones en las que sea deseable que los mensajes de registro " +"se presenten en un formato audible en lugar de visible. Esto es fácil de " +"hacer si tiene la funcionalidad de texto a voz (*TTS* por sus siglas en " +"inglés) disponible en su sistema, incluso si no tiene un binding Python. La " +"mayoría de los sistemas TTS tienen un programa de línea de comandos que " +"puede ejecutar, y esto puede invocarse desde un gestor usando :mod:" +"`subprocess`. Aquí se asume que los programas de línea de comando TTS no " +"esperarán interactuar con los usuarios o tardarán mucho en completarse, y " +"que la frecuencia de los mensajes registrados no será tan alta como para " +"inundar al usuario con mensajes, y que es aceptable que los mensajes se " +"reproducen uno a la vez en lugar de todos al mismo tiempo. La implementación " +"de ejemplo a continuación espera a que se pronuncie un mensaje antes de que " +"se procese el siguiente, y esto puede hacer que otros gestores se mantengan " +"esperando. Aquí hay un breve ejemplo que muestra el enfoque, que asume que " +"el paquete TTS ``espeak`` está disponible::" #: ../Doc/howto/logging-cookbook.rst:2265 msgid "" "When run, this script should say \"Hello\" and then \"Goodbye\" in a female " "voice." msgstr "" +"Cuando se ejecute, este script debería decir \"Hola\" y luego \"Adiós\" con " +"voz femenina." #: ../Doc/howto/logging-cookbook.rst:2267 msgid "" @@ -1260,10 +1883,14 @@ msgid "" "other systems altogether which can process messages via external programs " "run from a command line." msgstr "" +"El enfoque anterior puede, por supuesto, adaptarse a otros sistemas TTS e " +"incluso a otros sistemas que pueden procesar mensajes a través de programas " +"externos ejecutados desde una línea de comando." #: ../Doc/howto/logging-cookbook.rst:2275 msgid "Buffering logging messages and outputting them conditionally" msgstr "" +"Almacenamiento en búfer de mensajes de registro y su salida condicional" #: ../Doc/howto/logging-cookbook.rst:2277 msgid "" @@ -1274,6 +1901,12 @@ msgid "" "collected debug information, but if there is an error, you want all the " "debug information to be output as well as the error." msgstr "" +"Puede haber situaciones en las que desee registrar mensajes en un área " +"temporal y solo mostrarlos si se produce una determinada condición. Por " +"ejemplo, es posible que desee comenzar a registrar eventos de depuración en " +"una función, y si la función se completa sin errores, no desea saturar el " +"registro con la información de depuración recopilada; pero si hay un error, " +"desea toda la información de depuración información así como el error." #: ../Doc/howto/logging-cookbook.rst:2284 msgid "" @@ -1287,6 +1920,16 @@ msgid "" "specified threshold is seen. You can use this recipe with a more specialised " "subclass of ``MemoryHandler`` if you want custom flushing behavior." msgstr "" +"Aquí hay un ejemplo que muestra cómo puede hacer esto usando un decorador " +"para sus funciones donde desea que el registro se comporte de esta manera. " +"Hace uso de :class:`logging.handlers.MemoryHandler`, que permite el " +"almacenamiento en búfer de eventos registrados hasta que se produzca alguna " +"condición, momento en el que los eventos almacenados en búfer se ``flushed`` " +"y se pasan a otro gestor (el gestor ``target``) para su procesamiento. De " +"forma predeterminada, el ``MemoryHandler`` se vacía cuando su búfer se llena " +"o se ve un evento cuyo nivel es mayor o igual a un umbral especificado. " +"Puede usar esta receta con una subclase más especializada de " +"``MemoryHandler`` si desea un comportamiento de descarga personalizado." #: ../Doc/howto/logging-cookbook.rst:2294 msgid "" @@ -1296,6 +1939,12 @@ msgid "" "pass a parameter to ``foo`` which, if true, will log at ERROR and CRITICAL " "levels - otherwise, it only logs at DEBUG, INFO and WARNING levels." msgstr "" +"El script de ejemplo tiene una función simple, ``foo``, que recorre todos " +"los niveles de registro, escribiendo en ``sys.stderr`` para decir en qué " +"nivel está a punto de *loguear* y luego registrar un mensaje en ese nivel. " +"Puede pasar un parámetro a ``foo`` que, si es verdadero, se registrará en " +"los niveles ERROR y CRITICAL; de lo contrario, solo registrará en los " +"niveles DEBUG, INFO y WARNING." #: ../Doc/howto/logging-cookbook.rst:2300 msgid "" @@ -1308,14 +1957,23 @@ msgid "" "StreamHandler` which writes to ``sys.stderr``, ``logging.ERROR`` and ``100`` " "respectively." msgstr "" +"El script simplemente dispone decorar ``foo`` con un decorador que hará el " +"logging condicional que se requiere. El decorador toma un registrador como " +"parámetro y adjunta un gestor de memoria durante la duración de la llamada a " +"la función decorada. El decorador se puede parametrizar adicionalmente " +"utilizando un gestor *target*, un nivel en el que debe producirse el vaciado " +"y una capacidad para el búfer (número de registros almacenados en búfer). " +"Estos están predeterminados a :class:`~logging.StreamHandler` que escribe " +"en``sys.stderr``, ``logging.ERROR`` y ``100`` respectivamente." #: ../Doc/howto/logging-cookbook.rst:2308 msgid "Here's the script::" -msgstr "" +msgstr "Aquí está el script::" #: ../Doc/howto/logging-cookbook.rst:2371 msgid "When this script is run, the following output should be observed:" msgstr "" +"Cuando se ejecuta este script, se debe observar el siguiente resultado::" #: ../Doc/howto/logging-cookbook.rst:2401 msgid "" @@ -1323,20 +1981,25 @@ msgid "" "whose severity is ERROR or greater, but in that case, any previous events at " "lower severities are also logged." msgstr "" +"Como puede ver, la salida real de logging solo ocurre cuando se registra un " +"evento cuya gravedad es ERROR o mayor, pero en ese caso, también se registra " +"cualquier evento anterior con una gravedad menor." #: ../Doc/howto/logging-cookbook.rst:2405 msgid "You can of course use the conventional means of decoration::" -msgstr "" +msgstr "Por supuesto, puede utilizar las formas de decoración convencionales::" #: ../Doc/howto/logging-cookbook.rst:2415 msgid "Formatting times using UTC (GMT) via configuration" -msgstr "" +msgstr "Formateo de horas usando UTC (GMT) a través de la configuración" #: ../Doc/howto/logging-cookbook.rst:2417 msgid "" "Sometimes you want to format times using UTC, which can be done using a " "class such as `UTCFormatter`, shown below::" msgstr "" +"A veces desea formatear las horas usando UTC, lo que se puede hacer usando " +"una clase como `UTCFormatter`, como se muestra a continuación::" #: ../Doc/howto/logging-cookbook.rst:2426 msgid "" @@ -1345,20 +2008,26 @@ msgid "" "the :func:`~logging.config.dictConfig` API with an approach illustrated by " "the following complete example::" msgstr "" +"y luego puede usar el ``UTCFormatter`` en su código en lugar de :class:" +"`~logging.Formatter`. Si desea hacer eso a través de la configuración, puede " +"usar la API :func:`~logging.config.dictConfig` con un enfoque ilustrado por " +"el siguiente ejemplo completo::" #: ../Doc/howto/logging-cookbook.rst:2469 msgid "When this script is run, it should print something like:" -msgstr "" +msgstr "Cuando se ejecuta este script, debería imprimir algo como:" #: ../Doc/howto/logging-cookbook.rst:2476 msgid "" "showing how the time is formatted both as local time and UTC, one for each " "handler." msgstr "" +"mostrando cómo se formatea la hora como hora local y UTC, una para cada " +"gestor." #: ../Doc/howto/logging-cookbook.rst:2483 msgid "Using a context manager for selective logging" -msgstr "" +msgstr "Usar un administrador de contexto para logging selectivo" #: ../Doc/howto/logging-cookbook.rst:2485 msgid "" @@ -1369,6 +2038,13 @@ msgid "" "optionally change the logging level and add a logging handler purely in the " "scope of the context manager::" msgstr "" +"Hay ocasiones en las que sería útil cambiar temporalmente la configuración " +"de logging y revertirla después de hacer algo. Para ello, un administrador " +"de contexto es la forma más obvia de guardar y restaurar el contexto de " +"logging. Aquí hay un ejemplo simple de un administrador de contexto de este " +"tipo, que le permite cambiar opcionalmente el nivel de registro y agregar un " +"gestor de registro exclusivamente en el alcance del administrador de " +"contexto::" #: ../Doc/howto/logging-cookbook.rst:2518 msgid "" @@ -1378,12 +2054,20 @@ msgid "" "from the block. You can also ask the manager to close the handler for you on " "block exit - you could do this if you don't need the handler any more." msgstr "" +"Si especifica un valor de nivel, el nivel del registrador se establece en " +"ese valor en el alcance del bloque *with* cubierto por el administrador de " +"contexto. Si especifica un gestor, se agrega al registrador al entrar al " +"bloque y se elimina al salir del bloque. También puede pedirle al " +"administrador que cierre el gestor por usted al salir del bloque si ya no lo " +"necesita." #: ../Doc/howto/logging-cookbook.rst:2524 msgid "" "To illustrate how it works, we can add the following block of code to the " "above::" msgstr "" +"Para ilustrar cómo funciona, podemos agregar el siguiente bloque de código " +"al anterior::" #: ../Doc/howto/logging-cookbook.rst:2542 msgid "" @@ -1397,26 +2081,42 @@ msgid "" "statement's completion, the status is as it was before so message #6 appears " "(like message #1) whereas message #7 doesn't (just like message #2)." msgstr "" +"Inicialmente configuramos el nivel del registrador en ``INFO``, por lo que " +"aparece el mensaje #1 y el mensaje #2 no. Luego cambiamos el nivel a " +"``DEBUG`` temporalmente en el siguiente bloque ``with``, y aparece el " +"mensaje #3. Una vez que se sale del bloque, el nivel del registrador se " +"restaura a ``INFO`` y, por lo tanto, el mensaje #4 no aparece. En el " +"siguiente bloque ``with``, configuramos el nivel en ``DEBUG`` nuevamente, " +"pero también agregamos un gestor que escribe en ``sys.stdout``. Por lo " +"tanto, el mensaje #5 aparece dos veces en la consola (una vez a través de " +"``stderr`` y una vez a través de ``stdout``). Después de la finalización de " +"la declaración ``with``, se vuelve al estado anterior, por lo que aparece el " +"mensaje #6 (como el mensaje #1) mientras que el mensaje #7 no (como el " +"mensaje #2)." #: ../Doc/howto/logging-cookbook.rst:2552 msgid "If we run the resulting script, the result is as follows:" -msgstr "" +msgstr "Si ejecutamos el script resultante, el resultado es el siguiente:" #: ../Doc/howto/logging-cookbook.rst:2563 msgid "" "If we run it again, but pipe ``stderr`` to ``/dev/null``, we see the " "following, which is the only message written to ``stdout``:" msgstr "" +"Si lo ejecutamos de nuevo, pero dirigimos ``stderr`` a ``/dev/null``, vemos " +"lo siguiente, que es el único mensaje escrito en ``stdout``:" #: ../Doc/howto/logging-cookbook.rst:2571 msgid "Once again, but piping ``stdout`` to ``/dev/null``, we get:" -msgstr "" +msgstr "Una vez más, pero canalizando ``stdout`` a ``/dev/null``, obtenemos:" #: ../Doc/howto/logging-cookbook.rst:2581 msgid "" "In this case, the message #5 printed to ``stdout`` doesn't appear, as " "expected." msgstr "" +"En este caso, el mensaje #5 impreso en ``stdout`` no aparece, como se " +"esperaba." #: ../Doc/howto/logging-cookbook.rst:2583 msgid "" @@ -1424,28 +2124,34 @@ msgid "" "attach logging filters temporarily. Note that the above code works in Python " "2 as well as Python 3." msgstr "" +"Por supuesto, el enfoque descrito aquí puede generalizarse, por ejemplo, " +"para adjuntar filtros de logging temporalmente. Tenga en cuenta que el " +"código anterior funciona tanto en Python 2 como en Python 3." #: ../Doc/howto/logging-cookbook.rst:2591 msgid "A CLI application starter template" -msgstr "" +msgstr "Una plantilla de inicio de aplicación CLI" #: ../Doc/howto/logging-cookbook.rst:2593 msgid "Here's an example which shows how you can:" -msgstr "" +msgstr "Aquí hay un ejemplo que muestra cómo puede:" #: ../Doc/howto/logging-cookbook.rst:2595 msgid "Use a logging level based on command-line arguments" msgstr "" +"Utilizar un nivel de logging basado en argumentos de la línea de comandos" #: ../Doc/howto/logging-cookbook.rst:2596 msgid "" "Dispatch to multiple subcommands in separate files, all logging at the same " "level in a consistent way" msgstr "" +"Enviar a varios subcomandos en archivos separados, todos registrando en el " +"mismo nivel de forma coherente" #: ../Doc/howto/logging-cookbook.rst:2598 msgid "Make use of simple, minimal configuration" -msgstr "" +msgstr "Utilizar una configuración mínima y sencilla" #: ../Doc/howto/logging-cookbook.rst:2600 msgid "" @@ -1457,52 +2163,70 @@ msgid "" "verbosity of the application via a command-line argument, defaulting to " "``logging.INFO``. Here's one way that ``app.py`` could be written::" msgstr "" +"Supongamos que tenemos una aplicación de línea de comandos cuyo trabajo es " +"detener, iniciar o reiniciar algunos servicios. Esto podría organizarse con " +"fines ilustrativos como un archivo ``app.py`` que es el script principal de " +"la aplicación, con comandos individuales implementados en ``start.py``, " +"``stop.py`` y ``restart.py``. Supongamos además que queremos controlar la " +"verbosidad de la aplicación a través de un argumento de línea de comandos, " +"por defecto en ``logging.INFO``. Aquí hay una forma en que se podría " +"escribir ``app.py``::" #: ../Doc/howto/logging-cookbook.rst:2649 msgid "" "And the ``start``, ``stop`` and ``restart`` commands can be implemented in " "separate modules, like so for starting::" msgstr "" +"Y los comandos ``start``, ``stop`` y ``reiniciar`` se pueden implementar en " +"módulos separados, como para iniciar::" #: ../Doc/howto/logging-cookbook.rst:2662 msgid "and thus for stopping::" -msgstr "" +msgstr "y así para detener::" #: ../Doc/howto/logging-cookbook.rst:2683 msgid "and similarly for restarting::" -msgstr "" +msgstr "y de manera similar para reiniciar::" #: ../Doc/howto/logging-cookbook.rst:2704 msgid "" "If we run this application with the default log level, we get output like " "this:" msgstr "" +"Si ejecutamos esta aplicación con el nivel de registro predeterminado, " +"obtenemos un resultado como este:" #: ../Doc/howto/logging-cookbook.rst:2717 msgid "" "The first word is the logging level, and the second word is the module or " "package name of the place where the event was logged." msgstr "" +"La primera palabra es el nivel de logging y la segunda palabra es el nombre " +"del módulo o paquete del lugar donde se registró el evento." #: ../Doc/howto/logging-cookbook.rst:2720 msgid "" "If we change the logging level, then we can change the information sent to " "the log. For example, if we want more information:" msgstr "" +"Si cambiamos el nivel de logging, podemos cambiar la información enviada al " +"registro. Por ejemplo, si queremos más información:" #: ../Doc/howto/logging-cookbook.rst:2737 msgid "And if we want less:" -msgstr "" +msgstr "Y si queremos menos:" #: ../Doc/howto/logging-cookbook.rst:2745 msgid "" "In this case, the commands don't print anything to the console, since " "nothing at ``WARNING`` level or above is logged by them." msgstr "" +"En este caso, los comandos no imprimen nada en la consola, ya que no " +"registran nada en el nivel de ``WARNING`` o superior." #: ../Doc/howto/logging-cookbook.rst:2751 msgid "A Qt GUI for logging" -msgstr "" +msgstr "Una GUI de Qt para logging" #: ../Doc/howto/logging-cookbook.rst:2753 msgid "" @@ -1511,6 +2235,11 @@ msgid "" "platform UI framework with Python bindings using `PySide2 `_ or `PyQt5 `_ libraries." msgstr "" +"Una pregunta que surge de vez en cuando es sobre cómo *loggear* en una " +"aplicación GUI. El *framework* `Qt ` _ es un *framework* " +"popular multiplataforma con bindings de Python que usan PySide2 `_ o librerías `PyQt5 `_ ." #: ../Doc/howto/logging-cookbook.rst:2759 msgid "" @@ -1521,6 +2250,14 @@ msgid "" "logging) as well as a worker thread doing work in the background (here, just " "logging messages at random levels with random short delays in between)." msgstr "" +"El siguiente ejemplo muestra cómo iniciar sesión en una GUI de Qt. Esto " +"introduce una clase simple ``QtHandler`` que toma un invocable, que debería " +"ser un slot en el hilo principal que realiza actualizaciones de la GUI. " +"También se crea un hilo de trabajo para mostrar cómo puede iniciar sesión en " +"la GUI tanto desde la propia interfaz de usuario (a través de un botón para " +"el registro manual) como desde un hilo de trabajo que trabaja en segundo " +"plano (aquí, simplemente registrando mensajes en niveles aleatorios con " +"aleatorio breves retrasos intermedios)." #: ../Doc/howto/logging-cookbook.rst:2766 msgid "" @@ -1528,6 +2265,10 @@ msgid "" "the :mod:`threading` module, as there are circumstances where one has to use " "``QThread``, which offers better integration with other ``Qt`` components." msgstr "" +"El hilo *worker* se implementa usando la clase ``QThread`` de Qt en lugar " +"del módulo :mod:`threading`, ya que hay circunstancias en las que uno tiene " +"que usar ``QThread``, que ofrece una mejor integración con otros componentes " +"``Qt``." #: ../Doc/howto/logging-cookbook.rst:2770 msgid "" @@ -1536,3 +2277,7 @@ msgid "" "Qt. Please refer to the comments in the code snippet for more detailed " "information." msgstr "" +"El código debería funcionar con versiones recientes de ``PySide2`` o " +"``PyQt5``. Debería poder adaptar el enfoque a versiones anteriores de Qt. " +"Consulte los comentarios en el fragmento de código para obtener información " +"más detallada." From 3b6644b491ee9944f7c39ccc06aa862a77b6eb64 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Sun, 20 Sep 2020 08:51:42 -0300 Subject: [PATCH 02/34] correcciones posTravis --- dictionaries/howto_logging-cookbook.txt | 11 +++++ howto/logging-cookbook.po | 56 ++++++++++++------------- 2 files changed, 38 insertions(+), 29 deletions(-) create mode 100644 dictionaries/howto_logging-cookbook.txt diff --git a/dictionaries/howto_logging-cookbook.txt b/dictionaries/howto_logging-cookbook.txt new file mode 100644 index 0000000000..fbc67a76c9 --- /dev/null +++ b/dictionaries/howto_logging-cookbook.txt @@ -0,0 +1,11 @@ +logger +loggers +pickle +binding +bindings +slot +QueueHandler +QueueListener +SysLogHandler +LogRecord +bindings \ No newline at end of file diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 583ee84535..52544961cf 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-05 12:54+0200\n" -"PO-Revision-Date: 2020-09-05 23:22-0300\n" +"PO-Revision-Date: 2020-09-20 08:48-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -277,7 +277,7 @@ msgid "" "developers who will use your code." msgstr "" "Una solución es utilizar un enfoque de dos partes. Para la primera parte, " -"adjunte solo una : ¡class:`QueueHandler` a los loggers que se acceden desde " +"adjunte solo una :class:`QueueHandler` a los loggers que se acceden desde " "subprocesos críticos de rendimiento. Simplemente escriben en su cola, que " "puede dimensionarse a una capacidad lo suficientemente grande o " "inicializarse sin límite superior a su tamaño. La escritura en la cola " @@ -289,7 +289,6 @@ msgstr "" "desarrolladores que usarán su código." #: ../Doc/howto/logging-cookbook.rst:357 -#, fuzzy msgid "" "The second part of the solution is :class:`QueueListener`, which has been " "designed as the counterpart to :class:`QueueHandler`. A :class:" @@ -302,7 +301,7 @@ msgstr "" "La segunda parte de la solución es :class:`QueueListener`, que fue designado " "como la contraparte de :class:`QueueHandler`. Un :class:`QueueListener` es " "muy simple: ha pasado una cola y algunos gestores, y activa un hilo interno " -"que escucha su cola para LogRecords enviados desde ``QueueHandlers`` (o " +"que escucha su cola para *LogRecords* enviados desde ``QueueHandlers`` (o " "cualquier otra fuente de ``LogRecords``, para el caso). Los ``LogRecords`` " "se eliminan de la cola y se pasan a los gestores para su procesamiento." @@ -509,11 +508,11 @@ msgid "" "`~LoggerAdapter.process` to do what you need. Here is a simple example::" msgstr "" "La ventaja de usar 'extra' es que los valores en el objeto dict se combinan " -"en la instancia :class:`LogRecord`__dict__, lo que le permite usar cadenas " +"en la instancia :class:`LogRecord` __dict__, lo que le permite usar cadenas " "personalizadas con sus instancias :class:`Formatter` que conocen las claves " "del objeto dict. Si necesita un método diferente, por ejemplo, si desea " "anteponer o agregar la información contextual a la cadena del mensaje, solo " -"necesita la subclase :class:`LoggerAdapter` y anular :meth:`~ LoggerAdapter." +"necesita la subclase :class:`LoggerAdapter` y anular :meth:`~LoggerAdapter." "process` para hacer lo que necesita. Aquí hay un ejemplo simple:" #: ../Doc/howto/logging-cookbook.rst:615 @@ -829,7 +828,7 @@ msgstr "" # No entiendo este bloque en inglés ni en español :P #: ../Doc/howto/logging-cookbook.rst:1097 -#, fuzzy, python-format +#, python-format msgid "" "Logging calls (``logger.debug()``, ``logger.info()`` etc.) only take " "positional parameters for the actual logging message itself, with keyword " @@ -848,16 +847,15 @@ msgstr "" "toman parámetros posicionales para el mensaje de registro real en sí, con " "parámetros de palabras clave que se usan solo para determinar opciones sobre " "cómo gestionar la llamada real a Logging (por ejemplo, el parámetro de " -"palabra clave `` exc_info '' para indicar que la información de rastreo debe " -"registrarse, o el parámetro de palabra clave `` extra '' para indicar " +"palabra clave ``exc_info`` para indicar que la información de rastreo debe " +"registrarse, o el parámetro de palabra clave ``extra`` para indicar " "información contextual adicional que se agregará al registro). Por lo tanto, " -"no puede realizar llamadas de registro directamente usando la sintaxis: " -"meth: `str.format` o: class:` string.Template`, porque internamente el " -"paquete de registro usa% -formatting para fusionar la cadena de formato y " -"los argumentos de las variables. No habría ningún cambio en esto mientras se " -"conserva la compatibilidad con versiones anteriores, ya que todas las " -"llamadas de registro que están en el código existente usarán cadenas de" -"% -format." +"no puede realizar llamadas de registro directamente usando la sintaxis :meth:" +"`str.format` o :class:`string.Template`, porque internamente el paquete de " +"registro usa formato % para fusionar la cadena de formato y los argumentos " +"de las variables. No habría ningún cambio en esto mientras se conserva la " +"compatibilidad con versiones anteriores, ya que todas las llamadas de " +"registro que están en el código existente usarán cadenas de formato %." #: ../Doc/howto/logging-cookbook.rst:1110 msgid "" @@ -871,7 +869,7 @@ msgstr "" "para construir sus mensajes de registro individuales. Recuerde que para un " "mensaje puede usar un objeto arbitrario como una cadena de caracteres de " "formato de mensaje, y que el paquete logging llamará a ``str()`` en ese " -"objeto para obtener la cadena de carácteres de formato real. Considere las " +"objeto para obtener la cadena de caracteres de formato real. Considere las " "siguientes dos clases::" #: ../Doc/howto/logging-cookbook.rst:1134 @@ -1019,7 +1017,7 @@ msgid "" "special manipulation you need when its :meth:`~Filter.filter` method is " "called." msgstr "" -"Agregua un :class:`Filter` a un registrador o gestor, que realiza la " +"Agrega un :class:`Filter` a un registrador o gestor, que realiza la " "manipulación especial necesaria que necesita cuando se llama a su método :" "meth:`~Filter.filter`." @@ -1445,7 +1443,7 @@ msgid "" "customize handler creation using a plain function such as::" msgstr "" "Hay ocasiones en las que desea personalizar los gestores de logging de " -"formas particulares, y si usa :func: `dictConfig` puede hacerlo sin " +"formas particulares, y si usa :func:`dictConfig` puede hacerlo sin " "subclases. Como ejemplo, considere que es posible que desee establecer la " "propiedad de un archivo de registro. En POSIX, esto se hace fácilmente " "usando :func:`shutil.chown`, pero los gestores de archivos en stdlib no " @@ -1649,7 +1647,7 @@ msgid "" "class:`LogRecord` for more information." msgstr "" "Consulte la documentación de referencia en :func:`setLogRecordFactory` y :" -"class: `LogRecord` para obtener más información." +"class:`LogRecord` para obtener más información." #: ../Doc/howto/logging-cookbook.rst:2011 msgid "Using custom message objects" @@ -1669,7 +1667,7 @@ msgstr "" "que puede usar cualquier objeto como una cadena de caracteres de formato de " "mensaje (:ref:`arbitrary-object-messages`) que al iniciar sesión puede usar " "un objeto arbitrario como una cadena de formato de mensaje, y que el paquete " -"de registro llamará: func:` str` en ese objeto para obtener el cadena de " +"de registro llamará :func:`str` en ese objeto para obtener el cadena de " "formato real. Considere las siguientes dos clases:" #: ../Doc/howto/logging-cookbook.rst:2038 @@ -1856,8 +1854,8 @@ msgstr "" "Puede haber situaciones en las que sea deseable que los mensajes de registro " "se presenten en un formato audible en lugar de visible. Esto es fácil de " "hacer si tiene la funcionalidad de texto a voz (*TTS* por sus siglas en " -"inglés) disponible en su sistema, incluso si no tiene un binding Python. La " -"mayoría de los sistemas TTS tienen un programa de línea de comandos que " +"inglés) disponible en su sistema, incluso si no tiene un *binding* Python. " +"La mayoría de los sistemas TTS tienen un programa de línea de comandos que " "puede ejecutar, y esto puede invocarse desde un gestor usando :mod:" "`subprocess`. Aquí se asume que los programas de línea de comando TTS no " "esperarán interactuar con los usuarios o tardarán mucho en completarse, y " @@ -2039,12 +2037,12 @@ msgid "" "scope of the context manager::" msgstr "" "Hay ocasiones en las que sería útil cambiar temporalmente la configuración " -"de logging y revertirla después de hacer algo. Para ello, un administrador " -"de contexto es la forma más obvia de guardar y restaurar el contexto de " -"logging. Aquí hay un ejemplo simple de un administrador de contexto de este " -"tipo, que le permite cambiar opcionalmente el nivel de registro y agregar un " -"gestor de registro exclusivamente en el alcance del administrador de " -"contexto::" +"de logging y revertir esto después de hacer algo. Para ello, un " +"administrador de contexto es la forma más obvia de guardar y restaurar el " +"contexto de logging. Aquí hay un ejemplo simple de un administrador de " +"contexto de este tipo, que le permite cambiar opcionalmente el nivel de " +"registro y agregar un gestor de registro exclusivamente en el alcance del " +"administrador de contexto::" #: ../Doc/howto/logging-cookbook.rst:2518 msgid "" From fdfbb13893b42666b2037aed37667885ebc0bdba Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Sun, 20 Sep 2020 09:09:47 -0300 Subject: [PATCH 03/34] correcciones posTravis --- howto/logging-cookbook.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 52544961cf..c24df15506 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-05 12:54+0200\n" -"PO-Revision-Date: 2020-09-20 08:48-0300\n" +"PO-Revision-Date: 2020-09-20 09:09-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1550,7 +1550,7 @@ msgstr "" "En Python 3.2, :class:`~logging.Formatter` obtuvo un parámetro de palabra " "clave ``estilo`` que, aunque por defecto era ``%`` para compatibilidad con " "versiones anteriores, permitía la especificación de ``{`` o ``$`` para " -"permitir los enfoques de formato admitidos por :meth`str.format` y :class:" +"permitir los enfoques de formato admitidos por :meth:`str.format` y :class:" "`string.Template`. Tenga en cuenta que esto rige el formato de los mensajes " "de logging para la salida final a los registros y es completamente ortogonal " "a cómo se construye un mensaje de registro individual." From c8a8173691fbea52e4fa048729e16fdfc3c7d500 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Sun, 20 Sep 2020 09:24:32 -0300 Subject: [PATCH 04/34] correcciones posTravis --- dictionaries/howto_logging-cookbook.txt | 3 ++- howto/logging-cookbook.po | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/dictionaries/howto_logging-cookbook.txt b/dictionaries/howto_logging-cookbook.txt index fbc67a76c9..2f958624c9 100644 --- a/dictionaries/howto_logging-cookbook.txt +++ b/dictionaries/howto_logging-cookbook.txt @@ -8,4 +8,5 @@ QueueHandler QueueListener SysLogHandler LogRecord -bindings \ No newline at end of file +bindings +LoggerAdapters \ No newline at end of file diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index c24df15506..8408814b0d 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-05 12:54+0200\n" -"PO-Revision-Date: 2020-09-20 09:09-0300\n" +"PO-Revision-Date: 2020-09-20 09:24-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1309,7 +1309,7 @@ msgstr "" "En Python 3.1, se agregó código a :class:`~logging.handlers.SysLogHandler` " "para insertar BOM en el mensaje, pero desafortunadamente, se implementó " "incorrectamente, BOM aparece al principio del mensaje y, por lo tanto, no " -"permite ningun componente ASCII puro para que aparezca antes." +"permite ningún componente ASCII puro para que aparezca antes." #: ../Doc/howto/logging-cookbook.rst:1701 msgid "" From 1d56e5e410e60cbd8facff850d7c5c8cc22f7cdb Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Sun, 27 Sep 2020 17:12:42 -0300 Subject: [PATCH 05/34] Update howto/logging-cookbook.po MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claudia Millán --- howto/logging-cookbook.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 8408814b0d..faffc1a7a7 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -62,8 +62,8 @@ msgid "" msgstr "" "Múltiples llamadas a ``logging.getLogger('someLogger')`` devuelven una " "referencia al mismo objeto logger. Esto es cierto no solo dentro del mismo " -"módulo, sino también en todos los módulos siempre que esté en el mismo " -"proceso el intérprete de Python. Es válido para las referencias al mismo " +"módulo, sino también en todos los módulos siempre que estén ejecutándose en el mismo " +"proceso del intérprete de Python. Es válido para las referencias al mismo " "objeto. Además, el código de la aplicación puede definir y configurar un " "logger primario en un módulo y crear (pero no configurar) un logger " "secundario en un módulo separado, y todas las llamadas al secundario pasarán " From 6c7dbd97a39ff1ed278cf80704eb39a1f706b3b7 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Fri, 2 Oct 2020 16:30:30 -0300 Subject: [PATCH 06/34] Update howto/logging-cookbook.po MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claudia Millán --- howto/logging-cookbook.po | 1 - 1 file changed, 1 deletion(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index faffc1a7a7..17fdb792c7 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -49,7 +49,6 @@ msgstr "Usar logging en múltiples módulos" # es correcto decir "...en el mismo proceso *el* intérprete de pyhton"? # 'logger' lo dejé en inglés. Podría ponerle "Registrador"? #: ../Doc/howto/logging-cookbook.rst:17 -#, fuzzy msgid "" "Multiple calls to ``logging.getLogger('someLogger')`` return a reference to " "the same logger object. This is true not only within the same module, but " From 24615fea58fd0b7cc65ac7a3c9a2137251258e2a Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Fri, 2 Oct 2020 16:31:15 -0300 Subject: [PATCH 07/34] Update howto/logging-cookbook.po MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claudia Millán --- howto/logging-cookbook.po | 2 -- 1 file changed, 2 deletions(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 17fdb792c7..402423cfcf 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -46,8 +46,6 @@ msgstr "" msgid "Using logging in multiple modules" msgstr "Usar logging en múltiples módulos" -# es correcto decir "...en el mismo proceso *el* intérprete de pyhton"? -# 'logger' lo dejé en inglés. Podría ponerle "Registrador"? #: ../Doc/howto/logging-cookbook.rst:17 msgid "" "Multiple calls to ``logging.getLogger('someLogger')`` return a reference to " From ee923af3384c74fe392f322dad1b1d93e7d65fc2 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Fri, 2 Oct 2020 16:31:45 -0300 Subject: [PATCH 08/34] Update howto/logging-cookbook.po MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claudia Millán --- howto/logging-cookbook.po | 1 - 1 file changed, 1 deletion(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 402423cfcf..8da127970d 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -68,7 +68,6 @@ msgstr "" # Esto me confunde un poco. Cuando menciona módulo principal / auxiliar en los ejemplos, ¿se refiere a principal y secundario que está en el cuerpo del texto? ¿no convendría unificar? #: ../Doc/howto/logging-cookbook.rst:55 -#, fuzzy msgid "Here is the auxiliary module::" msgstr "Y aquí un módulo auxiliar::" From 713be7aadc0e46cc5254608b74ac8fcdfe6476a1 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Fri, 2 Oct 2020 16:32:44 -0300 Subject: [PATCH 09/34] Update howto/logging-cookbook.po MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claudia Millán --- howto/logging-cookbook.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 8da127970d..bd587c23e5 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -84,7 +84,7 @@ msgid "" "Logging from multiple threads requires no special effort. The following " "example shows logging from the main (initial) thread and another thread::" msgstr "" -"*Logging* desde múltiples hilos (*threads*) no requiere ningún esfuerzo " +"Realizar *logging* desde múltiples hilos (*threads*) no requiere ningún esfuerzo " "especial. El siguiente ejemplo muestra el registro desde el hilo principal " "(inicial) y otro hilo::" From dad94bbe5987f9a44ec83fe3a488f81058104e35 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Fri, 2 Oct 2020 16:32:56 -0300 Subject: [PATCH 10/34] Update howto/logging-cookbook.po MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claudia Millán --- howto/logging-cookbook.po | 1 - 1 file changed, 1 deletion(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index bd587c23e5..4a5639839f 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -101,7 +101,6 @@ msgstr "" "supuesto, este enfoque funciona para más hilos de lo que se muestran aquí." #: ../Doc/howto/logging-cookbook.rst:158 -#, fuzzy msgid "Multiple handlers and formatters" msgstr "Múltiples gestores y formateadores" From ba08053a6289b4c535a1925557f210772c1acea4 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Fri, 2 Oct 2020 16:33:13 -0300 Subject: [PATCH 11/34] Update howto/logging-cookbook.po MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claudia Millán --- howto/logging-cookbook.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 4a5639839f..42afbb6d45 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -121,7 +121,7 @@ msgstr "" "(*handlers*) que puede agregar. A veces será beneficioso para una aplicación " "registrar todos los mensajes de todas las severidades en un archivo de texto " "mientras se registran simultáneamente los errores o más en la consola. Para " -"configurar esto, simplemente configure los manejadores apropiados. Las " +"configurar esto, simplemente configure los gestores apropiados. Las " "llamadas de registro en el código de la aplicación permanecerán sin cambios. " "Aquí hay una ligera modificación al ejemplo de configuración simple anterior " "basado en módulo::" From fa1944b06960b360596659c7102a58b9288087a9 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Fri, 2 Oct 2020 16:33:32 -0300 Subject: [PATCH 12/34] Update howto/logging-cookbook.po MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claudia Millán --- howto/logging-cookbook.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 42afbb6d45..e4c9cbac6c 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -155,7 +155,7 @@ msgstr "" "muchas declaraciones ``print`` para la depuración, use ``logger.debug``: a " "diferencia de las declaraciones de impresión, que tendrá que eliminar o " "comentar más tarde, las declaraciones de *logger.debug* pueden permanecer " -"intactas en el código fuente y permanecen inactivas hasta que las necesites " +"intactas en el código fuente y permanecen inactivas hasta que las necesite " "nuevamente. En ese momento, el único cambio que debe realizar es modificar " "el nivel de severidad del *logger* y/o gestor para depurar." From a2934526d7a949302f9cf9e45bbdfe385e715240 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Fri, 2 Oct 2020 16:33:44 -0300 Subject: [PATCH 13/34] Update howto/logging-cookbook.po MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claudia Millán --- howto/logging-cookbook.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index e4c9cbac6c..8b8ee6e5ec 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -253,7 +253,7 @@ msgstr "" "`SMTPHandler`: el envío de correos electrónicos puede llevar mucho tiempo, " "por varias razones fuera del control del desarrollador (por ejemplo, una " "infraestructura de red o correo de bajo rendimiento). Pero casi cualquier " -"controlador basado en red puede bloquear: Incluso una operación :class:" +"controlador basado en red puede bloquear: incluso una operación :class:" "`SocketHandler` puede hacer una consulta DNS de bajo nivel que es demasiado " "lenta (y esta consulta puede estar en el código de la biblioteca de socket, " "debajo de la capa de Python, y fuera de su control)." From 95beeaa84ce8d23c883e5ee1a8b62118db75be41 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Fri, 2 Oct 2020 16:34:23 -0300 Subject: [PATCH 14/34] Update howto/logging-cookbook.po MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claudia Millán --- howto/logging-cookbook.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 8b8ee6e5ec..e09a3e39f6 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -249,7 +249,7 @@ msgid "" "which is too slow (and this query can be deep in the socket library code, " "below the Python layer, and outside your control)." msgstr "" -"Un responsable común que demuestra comportamiento lento es la :class:" +"Un responsable habitual que ejemplifica un comportamiento lento es la :class:" "`SMTPHandler`: el envío de correos electrónicos puede llevar mucho tiempo, " "por varias razones fuera del control del desarrollador (por ejemplo, una " "infraestructura de red o correo de bajo rendimiento). Pero casi cualquier " From fda4fbad0255396e81583fe21a8d92baad1d0032 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Fri, 2 Oct 2020 16:34:39 -0300 Subject: [PATCH 15/34] Update howto/logging-cookbook.po MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claudia Millán --- howto/logging-cookbook.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index e09a3e39f6..b6a9a75e88 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -254,7 +254,7 @@ msgstr "" "por varias razones fuera del control del desarrollador (por ejemplo, una " "infraestructura de red o correo de bajo rendimiento). Pero casi cualquier " "controlador basado en red puede bloquear: incluso una operación :class:" -"`SocketHandler` puede hacer una consulta DNS de bajo nivel que es demasiado " +"`SocketHandler` puede estar haciendo a bajo nivel una consulta DNS que es demasiado " "lenta (y esta consulta puede estar en el código de la biblioteca de socket, " "debajo de la capa de Python, y fuera de su control)." From ad15a54248d72752cbf0358e5b188f83edec7683 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Fri, 2 Oct 2020 16:35:06 -0300 Subject: [PATCH 16/34] Update howto/logging-cookbook.po MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claudia Millán --- howto/logging-cookbook.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index b6a9a75e88..7b889d62ee 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -184,7 +184,7 @@ msgstr "Cuando ejecute esto, en la consola verá" #: ../Doc/howto/logging-cookbook.rst:256 msgid "and in the file you will see something like" -msgstr "y en el archivo vera algo como" +msgstr "y en el archivo verá algo como" #: ../Doc/howto/logging-cookbook.rst:266 msgid "" From 60fc03d5913b282dc285396e5290e62b973d0404 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Fri, 2 Oct 2020 16:35:20 -0300 Subject: [PATCH 17/34] Update howto/logging-cookbook.po MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claudia Millán --- howto/logging-cookbook.po | 1 - 1 file changed, 1 deletion(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 7b889d62ee..7ef3956568 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -239,7 +239,6 @@ msgstr "" # -"under the hood": de bajo nivel? más técnicas? #: ../Doc/howto/logging-cookbook.rst:338 -#, fuzzy msgid "" "A common culprit which demonstrates sluggish behaviour is the :class:" "`SMTPHandler`: sending emails can take a long time, for a number of reasons " From fadc8b06c76b76ade64b745a10b66089984f7022 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Sun, 4 Oct 2020 15:53:05 -0300 Subject: [PATCH 18/34] =?UTF-8?q?peque=C3=B1os=20ajustes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- howto/logging-cookbook.po | 2601 ++++++++++++++++++------------------- 1 file changed, 1232 insertions(+), 1369 deletions(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 7ef3956568..99682c610f 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-05 12:54+0200\n" -"PO-Revision-Date: 2020-09-20 09:24-0300\n" +"PO-Revision-Date: 2020-10-04 15:46-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -36,11 +36,11 @@ msgstr "Vinay Sajip " #: ../Doc/howto/logging-cookbook.rst:9 msgid "" -"This page contains a number of recipes related to logging, which have been " -"found useful in the past." +"This page contains a number of recipes related to logging, which have been found " +"useful in the past." msgstr "" -"Esta página contiene un número de recetas sobre *logging*, que han sido " -"útiles en el pasado." +"Esta página contiene un número de recetas sobre *logging*, que han sido útiles en el " +"pasado." #: ../Doc/howto/logging-cookbook.rst:15 msgid "Using logging in multiple modules" @@ -48,23 +48,21 @@ msgstr "Usar logging en múltiples módulos" #: ../Doc/howto/logging-cookbook.rst:17 msgid "" -"Multiple calls to ``logging.getLogger('someLogger')`` return a reference to " -"the same logger object. This is true not only within the same module, but " -"also across modules as long as it is in the same Python interpreter " -"process. It is true for references to the same object; additionally, " -"application code can define and configure a parent logger in one module and " -"create (but not configure) a child logger in a separate module, and all " -"logger calls to the child will pass up to the parent. Here is a main " -"module::" -msgstr "" -"Múltiples llamadas a ``logging.getLogger('someLogger')`` devuelven una " -"referencia al mismo objeto logger. Esto es cierto no solo dentro del mismo " -"módulo, sino también en todos los módulos siempre que estén ejecutándose en el mismo " -"proceso del intérprete de Python. Es válido para las referencias al mismo " -"objeto. Además, el código de la aplicación puede definir y configurar un " -"logger primario en un módulo y crear (pero no configurar) un logger " -"secundario en un módulo separado, y todas las llamadas al secundario pasarán " -"al principal. A continuación un módulo principal::" +"Multiple calls to ``logging.getLogger('someLogger')`` return a reference to the same " +"logger object. This is true not only within the same module, but also across " +"modules as long as it is in the same Python interpreter process. It is true for " +"references to the same object; additionally, application code can define and " +"configure a parent logger in one module and create (but not configure) a child " +"logger in a separate module, and all logger calls to the child will pass up to the " +"parent. Here is a main module::" +msgstr "" +"Múltiples llamadas a ``logging.getLogger('someLogger')`` devuelven una referencia al " +"mismo objeto logger. Esto es cierto no solo dentro del mismo módulo, sino también en " +"todos los módulos siempre que estén ejecutándose en el mismo proceso del intérprete " +"de Python. Es válido para las referencias al mismo objeto. Además, el código de la " +"aplicación puede definir y configurar un logger primario en un módulo y crear (pero " +"no configurar) un logger secundario en un módulo separado, y todas las llamadas al " +"secundario pasarán al principal. A continuación un módulo principal::" # Esto me confunde un poco. Cuando menciona módulo principal / auxiliar en los ejemplos, ¿se refiere a principal y secundario que está en el cuerpo del texto? ¿no convendría unificar? #: ../Doc/howto/logging-cookbook.rst:55 @@ -81,12 +79,12 @@ msgstr "Logging desde múltiples hilos" #: ../Doc/howto/logging-cookbook.rst:103 msgid "" -"Logging from multiple threads requires no special effort. The following " -"example shows logging from the main (initial) thread and another thread::" +"Logging from multiple threads requires no special effort. The following example " +"shows logging from the main (initial) thread and another thread::" msgstr "" "Realizar *logging* desde múltiples hilos (*threads*) no requiere ningún esfuerzo " -"especial. El siguiente ejemplo muestra el registro desde el hilo principal " -"(inicial) y otro hilo::" +"especial. El siguiente ejemplo muestra el registro desde el hilo principal (inicial) " +"y otro hilo::" #: ../Doc/howto/logging-cookbook.rst:132 msgid "When run, the script should print something like the following:" @@ -94,70 +92,62 @@ msgstr "Cuando se ejecuta, el script debe imprimir algo como lo siguiente:" #: ../Doc/howto/logging-cookbook.rst:154 msgid "" -"This shows the logging output interspersed as one might expect. This " -"approach works for more threads than shown here, of course." +"This shows the logging output interspersed as one might expect. This approach works " +"for more threads than shown here, of course." msgstr "" -"Esto muestra la salida de registro intercalada como cabría esperar. Por " -"supuesto, este enfoque funciona para más hilos de lo que se muestran aquí." +"Esto muestra la salida de registro intercalada como cabría esperar. Por supuesto, " +"este enfoque funciona para más hilos de lo que se muestran aquí." #: ../Doc/howto/logging-cookbook.rst:158 msgid "Multiple handlers and formatters" msgstr "Múltiples gestores y formateadores" #: ../Doc/howto/logging-cookbook.rst:160 -#, fuzzy msgid "" -"Loggers are plain Python objects. The :meth:`~Logger.addHandler` method has " -"no minimum or maximum quota for the number of handlers you may add. " -"Sometimes it will be beneficial for an application to log all messages of " -"all severities to a text file while simultaneously logging errors or above " -"to the console. To set this up, simply configure the appropriate handlers. " -"The logging calls in the application code will remain unchanged. Here is a " -"slight modification to the previous simple module-based configuration " -"example::" -msgstr "" -"Los *loggers* son simples objetos Python. El método :meth:`~Logger." -"addHandler` no tiene una cuota mínima o máxima para la cantidad de gestores " -"(*handlers*) que puede agregar. A veces será beneficioso para una aplicación " -"registrar todos los mensajes de todas las severidades en un archivo de texto " -"mientras se registran simultáneamente los errores o más en la consola. Para " -"configurar esto, simplemente configure los gestores apropiados. Las " -"llamadas de registro en el código de la aplicación permanecerán sin cambios. " -"Aquí hay una ligera modificación al ejemplo de configuración simple anterior " -"basado en módulo::" +"Loggers are plain Python objects. The :meth:`~Logger.addHandler` method has no " +"minimum or maximum quota for the number of handlers you may add. Sometimes it will " +"be beneficial for an application to log all messages of all severities to a text " +"file while simultaneously logging errors or above to the console. To set this up, " +"simply configure the appropriate handlers. The logging calls in the application " +"code will remain unchanged. Here is a slight modification to the previous simple " +"module-based configuration example::" +msgstr "" +"Los *loggers* son simples objetos Python. El método :meth:`~Logger.addHandler` no " +"tiene una cuota mínima o máxima para la cantidad de gestores (*handlers*) que puede " +"agregar. A veces será beneficioso para una aplicación registrar todos los mensajes " +"de todas las severidades en un archivo de texto mientras se registran " +"simultáneamente los errores o más en la consola. Para configurar esto, simplemente " +"configure los gestores apropiados. Las llamadas de registro en el código de la " +"aplicación permanecerán sin cambios. Aquí hay una ligera modificación al ejemplo de " +"configuración simple anterior basado en módulo::" #: ../Doc/howto/logging-cookbook.rst:193 msgid "" -"Notice that the 'application' code does not care about multiple handlers. " -"All that changed was the addition and configuration of a new handler named " -"*fh*." +"Notice that the 'application' code does not care about multiple handlers. All that " +"changed was the addition and configuration of a new handler named *fh*." msgstr "" -"Tenga en cuenta que el código de la 'aplicación' no se preocupa por los " -"gestores múltiples. Todo lo que cambió fue la adición y configuración de un " -"nuevo gestor llamado *fh*." +"Tenga en cuenta que el código de la 'aplicación' no se preocupa por los gestores " +"múltiples. Todo lo que cambió fue la adición y configuración de un nuevo gestor " +"llamado *fh*." -# ¿mayor o menor "severidad" del logger? ¿importancia? -# ¿prioridad? #: ../Doc/howto/logging-cookbook.rst:196 -#, fuzzy msgid "" -"The ability to create new handlers with higher- or lower-severity filters " -"can be very helpful when writing and testing an application. Instead of " -"using many ``print`` statements for debugging, use ``logger.debug``: Unlike " -"the print statements, which you will have to delete or comment out later, " -"the logger.debug statements can remain intact in the source code and remain " -"dormant until you need them again. At that time, the only change that needs " -"to happen is to modify the severity level of the logger and/or handler to " -"debug." -msgstr "" -"La capacidad de crear nuevos gestores con filtros de mayor o menor severidad " -"puede ser muy útil al escribir y probar una aplicación. En lugar de usar " -"muchas declaraciones ``print`` para la depuración, use ``logger.debug``: a " -"diferencia de las declaraciones de impresión, que tendrá que eliminar o " -"comentar más tarde, las declaraciones de *logger.debug* pueden permanecer " -"intactas en el código fuente y permanecen inactivas hasta que las necesite " -"nuevamente. En ese momento, el único cambio que debe realizar es modificar " -"el nivel de severidad del *logger* y/o gestor para depurar." +"The ability to create new handlers with higher- or lower-severity filters can be " +"very helpful when writing and testing an application. Instead of using many " +"``print`` statements for debugging, use ``logger.debug``: Unlike the print " +"statements, which you will have to delete or comment out later, the logger.debug " +"statements can remain intact in the source code and remain dormant until you need " +"them again. At that time, the only change that needs to happen is to modify the " +"severity level of the logger and/or handler to debug." +msgstr "" +"La capacidad de crear nuevos gestores con filtros de mayor o menor severidad puede " +"ser muy útil al escribir y probar una aplicación. En lugar de usar muchas " +"declaraciones ``print`` para la depuración, use ``logger.debug``: a diferencia de " +"las declaraciones de impresión, que tendrá que eliminar o comentar más tarde, las " +"declaraciones de *logger.debug* pueden permanecer intactas en el código fuente y " +"permanecen inactivas hasta que las necesite nuevamente. En ese momento, el único " +"cambio que debe realizar es modificar el nivel de prioridad del *logger* y/o gestor " +"para depurar." #: ../Doc/howto/logging-cookbook.rst:207 msgid "Logging to multiple destinations" @@ -165,18 +155,18 @@ msgstr "Logging en múltiples destinos" #: ../Doc/howto/logging-cookbook.rst:209 msgid "" -"Let's say you want to log to console and file with different message formats " -"and in differing circumstances. Say you want to log messages with levels of " -"DEBUG and higher to file, and those messages at level INFO and higher to the " -"console. Let's also assume that the file should contain timestamps, but the " -"console messages should not. Here's how you can achieve this::" +"Let's say you want to log to console and file with different message formats and in " +"differing circumstances. Say you want to log messages with levels of DEBUG and " +"higher to file, and those messages at level INFO and higher to the console. Let's " +"also assume that the file should contain timestamps, but the console messages should " +"not. Here's how you can achieve this::" msgstr "" -"Supongamos que desea que la consola y un archivo tengan diferentes formatos " -"de mensaje y salida de registro para diferentes situaciones. Por ejemplo, " -"desea registrar mensajes con un nivel DEBUG y superiores en un archivo y " -"enviar mensajes con nivel INFO y superior a la consola. Además, suponga que " -"desea grabar una marca de tiempo en el archivo y no imprimirlo en la " -"consola. Puede lograr este comportamiento haciendo lo siguiente::" +"Supongamos que desea que la consola y un archivo tengan diferentes formatos de " +"mensaje y salida de registro para diferentes situaciones. Por ejemplo, desea " +"registrar mensajes con un nivel DEBUG y superiores en un archivo y enviar mensajes " +"con nivel INFO y superior a la consola. Además, suponga que desea grabar una marca " +"de tiempo en el archivo y no imprimirlo en la consola. Puede lograr este " +"comportamiento haciendo lo siguiente::" #: ../Doc/howto/logging-cookbook.rst:247 msgid "When you run this, on the console you will see" @@ -188,8 +178,8 @@ msgstr "y en el archivo verá algo como" #: ../Doc/howto/logging-cookbook.rst:266 msgid "" -"As you can see, the DEBUG message only shows up in the file. The other " -"messages are sent to both destinations." +"As you can see, the DEBUG message only shows up in the file. The other messages are " +"sent to both destinations." msgstr "" "Como se puede ver, el mensaje DEBUG sólo se muestra en el archivo. Los otros " "mensajes se envían a los dos destinos." @@ -199,8 +189,8 @@ msgid "" "This example uses console and file handlers, but you can use any number and " "combination of handlers you choose." msgstr "" -"Este ejemplo usa gestores de consola y archivos, pero puede usar cualquier " -"número y combinación de los gestores que elija." +"Este ejemplo usa gestores de consola y archivos, pero puede usar cualquier número y " +"combinación de los gestores que elija." #: ../Doc/howto/logging-cookbook.rst:274 msgid "Configuration server example" @@ -209,18 +199,16 @@ msgstr "Ejemplo de servidor de configuración" #: ../Doc/howto/logging-cookbook.rst:276 msgid "Here is an example of a module using the logging configuration server::" msgstr "" -"Aquí hay un ejemplo de un módulo que usa el servidor de configuración " -"logging::" +"Aquí hay un ejemplo de un módulo que usa el servidor de configuración logging::" #: ../Doc/howto/logging-cookbook.rst:307 msgid "" -"And here is a script that takes a filename and sends that file to the " -"server, properly preceded with the binary-encoded length, as the new logging " -"configuration::" +"And here is a script that takes a filename and sends that file to the server, " +"properly preceded with the binary-encoded length, as the new logging configuration::" msgstr "" -"Y aquí hay un script que toma un nombre de archivo y envía ese archivo al " -"servidor, precedido adecuadamente con la longitud codificada en binario, " -"como la nueva configuración de logging::" +"Y aquí hay un script que toma un nombre de archivo y envía ese archivo al servidor, " +"precedido adecuadamente con la longitud codificada en binario, como la nueva " +"configuración de logging::" #: ../Doc/howto/logging-cookbook.rst:330 #, fuzzy @@ -229,94 +217,88 @@ msgstr "Tratar con gestores que bloquean" #: ../Doc/howto/logging-cookbook.rst:334 msgid "" -"Sometimes you have to get your logging handlers to do their work without " -"blocking the thread you're logging from. This is common in Web applications, " -"though of course it also occurs in other scenarios." +"Sometimes you have to get your logging handlers to do their work without blocking " +"the thread you're logging from. This is common in Web applications, though of course " +"it also occurs in other scenarios." msgstr "" -"A veces tiene que hacer que sus gestores de registro hagan su trabajo sin " -"bloquear el hilo desde el que está iniciando sesión. Esto es común en las " -"aplicaciones web, aunque, por supuesto, también ocurre en otros escenarios." +"A veces tiene que hacer que sus gestores de registro hagan su trabajo sin bloquear " +"el hilo desde el que está iniciando sesión. Esto es común en las aplicaciones web, " +"aunque, por supuesto, también ocurre en otros escenarios." # -"under the hood": de bajo nivel? más técnicas? #: ../Doc/howto/logging-cookbook.rst:338 msgid "" -"A common culprit which demonstrates sluggish behaviour is the :class:" -"`SMTPHandler`: sending emails can take a long time, for a number of reasons " -"outside the developer's control (for example, a poorly performing mail or " -"network infrastructure). But almost any network-based handler can block: " -"Even a :class:`SocketHandler` operation may do a DNS query under the hood " -"which is too slow (and this query can be deep in the socket library code, " -"below the Python layer, and outside your control)." +"A common culprit which demonstrates sluggish behaviour is the :class:`SMTPHandler`: " +"sending emails can take a long time, for a number of reasons outside the developer's " +"control (for example, a poorly performing mail or network infrastructure). But " +"almost any network-based handler can block: Even a :class:`SocketHandler` operation " +"may do a DNS query under the hood which is too slow (and this query can be deep in " +"the socket library code, below the Python layer, and outside your control)." msgstr "" "Un responsable habitual que ejemplifica un comportamiento lento es la :class:" -"`SMTPHandler`: el envío de correos electrónicos puede llevar mucho tiempo, " -"por varias razones fuera del control del desarrollador (por ejemplo, una " -"infraestructura de red o correo de bajo rendimiento). Pero casi cualquier " -"controlador basado en red puede bloquear: incluso una operación :class:" -"`SocketHandler` puede estar haciendo a bajo nivel una consulta DNS que es demasiado " -"lenta (y esta consulta puede estar en el código de la biblioteca de socket, " -"debajo de la capa de Python, y fuera de su control)." +"`SMTPHandler`: el envío de correos electrónicos puede llevar mucho tiempo, por " +"varias razones fuera del control del desarrollador (por ejemplo, una infraestructura " +"de red o correo de bajo rendimiento). Pero casi cualquier controlador basado en red " +"puede bloquear: incluso una operación :class:`SocketHandler` puede estar haciendo a " +"bajo nivel una consulta DNS que es demasiado lenta (y esta consulta puede estar en " +"el código de la biblioteca de socket, debajo de la capa de Python, y fuera de su " +"control)." #: ../Doc/howto/logging-cookbook.rst:346 msgid "" -"One solution is to use a two-part approach. For the first part, attach only " -"a :class:`QueueHandler` to those loggers which are accessed from performance-" -"critical threads. They simply write to their queue, which can be sized to a " -"large enough capacity or initialized with no upper bound to their size. The " -"write to the queue will typically be accepted quickly, though you will " -"probably need to catch the :exc:`queue.Full` exception as a precaution in " -"your code. If you are a library developer who has performance-critical " -"threads in their code, be sure to document this (together with a suggestion " -"to attach only ``QueueHandlers`` to your loggers) for the benefit of other " -"developers who will use your code." -msgstr "" -"Una solución es utilizar un enfoque de dos partes. Para la primera parte, " -"adjunte solo una :class:`QueueHandler` a los loggers que se acceden desde " -"subprocesos críticos de rendimiento. Simplemente escriben en su cola, que " -"puede dimensionarse a una capacidad lo suficientemente grande o " -"inicializarse sin límite superior a su tamaño. La escritura en la cola " -"generalmente se aceptará rápidamente, aunque es probable que deba atrapar la " -"excepción :exc:`queue.Full` como precaución en su código. Si usted es un " -"desarrollador de bibliotecas que tiene subprocesos críticos de rendimiento " -"en su código, asegúrese de documentar esto (junto con una sugerencia de " -"adjuntar solo ``QueueHandlers`` a sus loggers) para el beneficio de otros " +"One solution is to use a two-part approach. For the first part, attach only a :class:" +"`QueueHandler` to those loggers which are accessed from performance-critical " +"threads. They simply write to their queue, which can be sized to a large enough " +"capacity or initialized with no upper bound to their size. The write to the queue " +"will typically be accepted quickly, though you will probably need to catch the :exc:" +"`queue.Full` exception as a precaution in your code. If you are a library developer " +"who has performance-critical threads in their code, be sure to document this " +"(together with a suggestion to attach only ``QueueHandlers`` to your loggers) for " +"the benefit of other developers who will use your code." +msgstr "" +"Una solución es utilizar un enfoque de dos partes. Para la primera parte, adjunte " +"solo una :class:`QueueHandler` a los loggers que se acceden desde subprocesos " +"críticos de rendimiento. Simplemente escriben en su cola, que puede dimensionarse a " +"una capacidad lo suficientemente grande o inicializarse sin límite superior a su " +"tamaño. La escritura en la cola generalmente se aceptará rápidamente, aunque es " +"probable que deba atrapar la excepción :exc:`queue.Full` como precaución en su " +"código. Si usted es un desarrollador de bibliotecas que tiene subprocesos críticos " +"de rendimiento en su código, asegúrese de documentar esto (junto con una sugerencia " +"de adjuntar solo ``QueueHandlers`` a sus loggers) para el beneficio de otros " "desarrolladores que usarán su código." #: ../Doc/howto/logging-cookbook.rst:357 msgid "" -"The second part of the solution is :class:`QueueListener`, which has been " -"designed as the counterpart to :class:`QueueHandler`. A :class:" -"`QueueListener` is very simple: it's passed a queue and some handlers, and " -"it fires up an internal thread which listens to its queue for LogRecords " -"sent from ``QueueHandlers`` (or any other source of ``LogRecords``, for that " -"matter). The ``LogRecords`` are removed from the queue and passed to the " -"handlers for processing." -msgstr "" -"La segunda parte de la solución es :class:`QueueListener`, que fue designado " -"como la contraparte de :class:`QueueHandler`. Un :class:`QueueListener` es " -"muy simple: ha pasado una cola y algunos gestores, y activa un hilo interno " -"que escucha su cola para *LogRecords* enviados desde ``QueueHandlers`` (o " -"cualquier otra fuente de ``LogRecords``, para el caso). Los ``LogRecords`` " -"se eliminan de la cola y se pasan a los gestores para su procesamiento." +"The second part of the solution is :class:`QueueListener`, which has been designed " +"as the counterpart to :class:`QueueHandler`. A :class:`QueueListener` is very " +"simple: it's passed a queue and some handlers, and it fires up an internal thread " +"which listens to its queue for LogRecords sent from ``QueueHandlers`` (or any other " +"source of ``LogRecords``, for that matter). The ``LogRecords`` are removed from the " +"queue and passed to the handlers for processing." +msgstr "" +"La segunda parte de la solución es :class:`QueueListener`, que fue designado como la " +"contraparte de :class:`QueueHandler`. Un :class:`QueueListener` es muy simple: ha " +"pasado una cola y algunos gestores, y activa un hilo interno que escucha su cola " +"para *LogRecords* enviados desde ``QueueHandlers`` (o cualquier otra fuente de " +"``LogRecords``, para el caso). Los ``LogRecords`` se eliminan de la cola y se pasan " +"a los gestores para su procesamiento." #: ../Doc/howto/logging-cookbook.rst:365 msgid "" -"The advantage of having a separate :class:`QueueListener` class is that you " -"can use the same instance to service multiple ``QueueHandlers``. This is " -"more resource-friendly than, say, having threaded versions of the existing " -"handler classes, which would eat up one thread per handler for no particular " -"benefit." +"The advantage of having a separate :class:`QueueListener` class is that you can use " +"the same instance to service multiple ``QueueHandlers``. This is more resource-" +"friendly than, say, having threaded versions of the existing handler classes, which " +"would eat up one thread per handler for no particular benefit." msgstr "" -"La ventaja de tener una clase separada :class:`QueueListener` es que puede " -"usar la misma instancia para dar servicio a múltiples ``QueueHandlers``. " -"Esto es más amigable con los recursos que, por ejemplo, tener versiones " -"enhebradas de las clases de gestores existentes, que consumirían un hilo por " -"gestor sin ningún beneficio particular." +"La ventaja de tener una clase separada :class:`QueueListener` es que puede usar la " +"misma instancia para dar servicio a múltiples ``QueueHandlers``. Esto es más " +"amigable con los recursos que, por ejemplo, tener versiones enhebradas de las clases " +"de gestores existentes, que consumirían un hilo por gestor sin ningún beneficio " +"particular." #: ../Doc/howto/logging-cookbook.rst:370 msgid "An example of using these two classes follows (imports omitted)::" -msgstr "" -"Un ejemplo del uso de estas dos clases a continuación (se omiten *imports*)::" +msgstr "Un ejemplo del uso de estas dos clases a continuación (se omiten *imports*)::" #: ../Doc/howto/logging-cookbook.rst:388 msgid "which, when run, will produce:" @@ -326,23 +308,21 @@ msgstr "que, cuando se ejecuta, producirá:" #: ../Doc/howto/logging-cookbook.rst:394 #, fuzzy msgid "" -"Prior to Python 3.5, the :class:`QueueListener` always passed every message " -"received from the queue to every handler it was initialized with. (This was " -"because it was assumed that level filtering was all done on the other side, " -"where the queue is filled.) From 3.5 onwards, this behaviour can be changed " -"by passing a keyword argument ``respect_handler_level=True`` to the " -"listener's constructor. When this is done, the listener compares the level " -"of each message with the handler's level, and only passes a message to a " -"handler if it's appropriate to do so." -msgstr "" -"Antes de Python 3.5, :class:`QueueListener` siempre pasaba cada mensaje " -"recibido de la cola a cada gestor con el que se inicializaba. (Esto se debió " -"a que se asumió que el filtrado de nivel se realizó en el otro lado, donde " -"se llena la cola). A partir de 3.5, este comportamiento se puede cambiar " -"pasando un argumento de palabra clave ``respect_handler_level=True`` al " -"constructor del oyente . Cuando se hace esto, el oyente compara el nivel de " -"cada mensaje con el nivel del controlador, y solo pasa un mensaje a un " -"controlador si es apropiado hacerlo." +"Prior to Python 3.5, the :class:`QueueListener` always passed every message received " +"from the queue to every handler it was initialized with. (This was because it was " +"assumed that level filtering was all done on the other side, where the queue is " +"filled.) From 3.5 onwards, this behaviour can be changed by passing a keyword " +"argument ``respect_handler_level=True`` to the listener's constructor. When this is " +"done, the listener compares the level of each message with the handler's level, and " +"only passes a message to a handler if it's appropriate to do so." +msgstr "" +"Antes de Python 3.5, :class:`QueueListener` siempre pasaba cada mensaje recibido de " +"la cola a cada gestor con el que se inicializaba. (Esto se debió a que se asumió que " +"el filtrado de nivel se realizó en el otro lado, donde se llena la cola). A partir " +"de 3.5, este comportamiento se puede cambiar pasando un argumento de palabra clave " +"``respect_handler_level=True`` al constructor del oyente . Cuando se hace esto, el " +"oyente compara el nivel de cada mensaje con el nivel del controlador, y solo pasa un " +"mensaje a un controlador si es apropiado hacerlo." #: ../Doc/howto/logging-cookbook.rst:407 msgid "Sending and receiving logging events across a network" @@ -352,45 +332,42 @@ msgstr "Enviar y recibir eventos logging a través de una red" #: ../Doc/howto/logging-cookbook.rst:409 #, fuzzy msgid "" -"Let's say you want to send logging events across a network, and handle them " -"at the receiving end. A simple way of doing this is attaching a :class:" -"`SocketHandler` instance to the root logger at the sending end::" +"Let's say you want to send logging events across a network, and handle them at the " +"receiving end. A simple way of doing this is attaching a :class:`SocketHandler` " +"instance to the root logger at the sending end::" msgstr "" -"Supongamos que desea enviar eventos logging a través de una red y " -"gestionarlos en el extremo receptor. Una forma sencilla de hacer esto es " -"adjuntar una instancia de :class:`SocketHandler` al logger raíz en el " -"extremo final del envío::" +"Supongamos que desea enviar eventos logging a través de una red y gestionarlos en el " +"extremo receptor. Una forma sencilla de hacer esto es adjuntar una instancia de :" +"class:`SocketHandler` al logger raíz en el extremo final del envío::" #: ../Doc/howto/logging-cookbook.rst:437 msgid "" -"At the receiving end, you can set up a receiver using the :mod:" -"`socketserver` module. Here is a basic working example::" +"At the receiving end, you can set up a receiver using the :mod:`socketserver` " +"module. Here is a basic working example::" msgstr "" "En el extremo receptor, puede configurar un receptor usando el módulo :mod:" "`socketserver`. Aquí hay un ejemplo básico de trabajo:" #: ../Doc/howto/logging-cookbook.rst:525 msgid "" -"First run the server, and then the client. On the client side, nothing is " -"printed on the console; on the server side, you should see something like:" +"First run the server, and then the client. On the client side, nothing is printed on " +"the console; on the server side, you should see something like:" msgstr "" -"Primero ejecuta el servidor, y luego el cliente. Del lado del cliente, nada " -"se imprime en la consola; del lado del servidor, se debería ver algo como " -"esto:" +"Primero ejecuta el servidor, y luego el cliente. Del lado del cliente, nada se " +"imprime en la consola; del lado del servidor, se debería ver algo como esto:" #: ../Doc/howto/logging-cookbook.rst:537 msgid "" -"Note that there are some security issues with pickle in some scenarios. If " -"these affect you, you can use an alternative serialization scheme by " -"overriding the :meth:`~handlers.SocketHandler.makePickle` method and " -"implementing your alternative there, as well as adapting the above script to " -"use your alternative serialization." +"Note that there are some security issues with pickle in some scenarios. If these " +"affect you, you can use an alternative serialization scheme by overriding the :meth:" +"`~handlers.SocketHandler.makePickle` method and implementing your alternative there, " +"as well as adapting the above script to use your alternative serialization." msgstr "" -"Tenga en cuenta que existen algunos problemas de seguridad con pickle en " -"algunos escenarios. Si estos le afectan, puede usar un esquema de " -"serialización alternativo anulando el método :meth:`~ handlers.SocketHandler." -"makePickle` e implementando su alternativa allí, así como adaptar el script " -"anterior para usar su serialización alternativa." +"Tenga en cuenta que existen algunos problemas de seguridad con pickle en algunos " +"escenarios. Si estos le afectan, puede usar un esquema de serialización alternativo " +"anulando el método :meth:`~ handlers.SocketHandler.makePickle` e implementando su " +"alternativa allí, así como adaptar el script anterior para usar su serialización " +"alternativa." #: ../Doc/howto/logging-cookbook.rst:547 msgid "Adding contextual information to your logging output" @@ -399,32 +376,30 @@ msgstr "Agregar información contextual a su salida de logging" # no estoy seguro de la parte "se liberan de memoria via recolector de basura". En la wikipedia en español lo llaman así. "se liberan de memoria" es una agregado mío. #: ../Doc/howto/logging-cookbook.rst:549 msgid "" -"Sometimes you want logging output to contain contextual information in " -"addition to the parameters passed to the logging call. For example, in a " -"networked application, it may be desirable to log client-specific " -"information in the log (e.g. remote client's username, or IP address). " -"Although you could use the *extra* parameter to achieve this, it's not " -"always convenient to pass the information in this way. While it might be " -"tempting to create :class:`Logger` instances on a per-connection basis, this " -"is not a good idea because these instances are not garbage collected. While " -"this is not a problem in practice, when the number of :class:`Logger` " -"instances is dependent on the level of granularity you want to use in " -"logging an application, it could be hard to manage if the number of :class:" -"`Logger` instances becomes effectively unbounded." -msgstr "" -"A veces, desea que la salida de registro contenga información contextual " -"además de los parámetros pasados ​​a la llamada del logging. Por ejemplo, en " -"una aplicación en red, puede ser conveniente registrar información " -"específica del cliente en el registro (por ejemplo, el nombre de usuario del " -"cliente remoto o la dirección IP). Aunque puede usar el parámetro *extra* " -"para lograr esto, no siempre es conveniente pasar la información de esta " -"manera. Si bien puede resultar tentador crear instancias :class:`Logger` por " -"conexión, esta no es una buena idea porque estas instancias no se liberan de " -"memoria vía recolector de basura (*garbage collector*). Si bien esto no es " -"un problema en la práctica, cuando el número de instancias de :class:" -"`Logger` depende del nivel de granularidad que desea usar para registrar una " -"aplicación, podría ser difícil de administrar si el número de instancias :" -"class:`Logger` se vuelven efectivamente ilimitadas." +"Sometimes you want logging output to contain contextual information in addition to " +"the parameters passed to the logging call. For example, in a networked application, " +"it may be desirable to log client-specific information in the log (e.g. remote " +"client's username, or IP address). Although you could use the *extra* parameter to " +"achieve this, it's not always convenient to pass the information in this way. While " +"it might be tempting to create :class:`Logger` instances on a per-connection basis, " +"this is not a good idea because these instances are not garbage collected. While " +"this is not a problem in practice, when the number of :class:`Logger` instances is " +"dependent on the level of granularity you want to use in logging an application, it " +"could be hard to manage if the number of :class:`Logger` instances becomes " +"effectively unbounded." +msgstr "" +"A veces, desea que la salida de registro contenga información contextual además de " +"los parámetros pasados ​​a la llamada del logging. Por ejemplo, en una aplicación en " +"red, puede ser conveniente registrar información específica del cliente en el " +"registro (por ejemplo, el nombre de usuario del cliente remoto o la dirección IP). " +"Aunque puede usar el parámetro *extra* para lograr esto, no siempre es conveniente " +"pasar la información de esta manera. Si bien puede resultar tentador crear " +"instancias :class:`Logger` por conexión, esta no es una buena idea porque estas " +"instancias no se liberan de memoria vía recolector de basura (*garbage collector*). " +"Si bien esto no es un problema en la práctica, cuando el número de instancias de :" +"class:`Logger` depende del nivel de granularidad que desea usar para registrar una " +"aplicación, podría ser difícil de administrar si el número de instancias :class:" +"`Logger` se vuelven efectivamente ilimitadas." #: ../Doc/howto/logging-cookbook.rst:564 msgid "Using LoggerAdapters to impart contextual information" @@ -434,80 +409,75 @@ msgstr "Uso de LoggerAdapters para impartir información contextual" #: ../Doc/howto/logging-cookbook.rst:566 #, fuzzy msgid "" -"An easy way in which you can pass contextual information to be output along " -"with logging event information is to use the :class:`LoggerAdapter` class. " -"This class is designed to look like a :class:`Logger`, so that you can call :" -"meth:`debug`, :meth:`info`, :meth:`warning`, :meth:`error`, :meth:" -"`exception`, :meth:`critical` and :meth:`log`. These methods have the same " -"signatures as their counterparts in :class:`Logger`, so you can use the two " -"types of instances interchangeably." -msgstr "" -"Una manera fácil de pasar información contextual para que se genere junto " -"con la información de eventos logging es usar la clase :class:" -"`LoggerAdapter`. Esta clase está diseñada para parecerse a :class:`Logger`, " -"de modo que pueda llamar : meth:`debug`, :meth:`info`, :meth:`warning`, :" -"meth:`error`, :meth:`excepción`, :meth`critical` y :meth:`log`. Estos " -"métodos tienen las mismas características que sus contrapartes en :class:" -"`Logger`, por lo que puede usar los dos tipos de instancias indistintamente." +"An easy way in which you can pass contextual information to be output along with " +"logging event information is to use the :class:`LoggerAdapter` class. This class is " +"designed to look like a :class:`Logger`, so that you can call :meth:`debug`, :meth:" +"`info`, :meth:`warning`, :meth:`error`, :meth:`exception`, :meth:`critical` and :" +"meth:`log`. These methods have the same signatures as their counterparts in :class:" +"`Logger`, so you can use the two types of instances interchangeably." +msgstr "" +"Una manera fácil de pasar información contextual para que se genere junto con la " +"información de eventos logging es usar la clase :class:`LoggerAdapter`. Esta clase " +"está diseñada para parecerse a :class:`Logger`, de modo que pueda llamar : meth:" +"`debug`, :meth:`info`, :meth:`warning`, :meth:`error`, :meth:`excepción`, :" +"meth`critical` y :meth:`log`. Estos métodos tienen las mismas características que " +"sus contrapartes en :class:`Logger`, por lo que puede usar los dos tipos de " +"instancias indistintamente." #: ../Doc/howto/logging-cookbook.rst:574 #, fuzzy msgid "" -"When you create an instance of :class:`LoggerAdapter`, you pass it a :class:" -"`Logger` instance and a dict-like object which contains your contextual " -"information. When you call one of the logging methods on an instance of :" -"class:`LoggerAdapter`, it delegates the call to the underlying instance of :" -"class:`Logger` passed to its constructor, and arranges to pass the " -"contextual information in the delegated call. Here's a snippet from the code " -"of :class:`LoggerAdapter`::" -msgstr "" -"Cuando creas una instancia de :class:`LoggerAdapter`, le pasas una " -"instancia :class:`Logger` y un objeto tipo dict que contiene tu información " -"contextual. Cuando llamas a uno de los métodos logging en una instancia de :" -"class:`LoggerAdapter`, este último delega la llamada a la instancia " -"subyacente de :class:`Logger` pasada a su constructor, y se arregla para " -"pasar la información contextual en la llamada delegada . Aquí hay un " -"fragmento del código de :class:`LoggerAdapter`::" +"When you create an instance of :class:`LoggerAdapter`, you pass it a :class:`Logger` " +"instance and a dict-like object which contains your contextual information. When you " +"call one of the logging methods on an instance of :class:`LoggerAdapter`, it " +"delegates the call to the underlying instance of :class:`Logger` passed to its " +"constructor, and arranges to pass the contextual information in the delegated call. " +"Here's a snippet from the code of :class:`LoggerAdapter`::" +msgstr "" +"Cuando creas una instancia de :class:`LoggerAdapter`, le pasas una instancia :class:" +"`Logger` y un objeto tipo dict que contiene tu información contextual. Cuando llamas " +"a uno de los métodos logging en una instancia de :class:`LoggerAdapter`, este último " +"delega la llamada a la instancia subyacente de :class:`Logger` pasada a su " +"constructor, y se arregla para pasar la información contextual en la llamada " +"delegada . Aquí hay un fragmento del código de :class:`LoggerAdapter`::" #: ../Doc/howto/logging-cookbook.rst:590 msgid "" -"The :meth:`~LoggerAdapter.process` method of :class:`LoggerAdapter` is where " -"the contextual information is added to the logging output. It's passed the " -"message and keyword arguments of the logging call, and it passes back " -"(potentially) modified versions of these to use in the call to the " -"underlying logger. The default implementation of this method leaves the " -"message alone, but inserts an 'extra' key in the keyword argument whose " -"value is the dict-like object passed to the constructor. Of course, if you " -"had passed an 'extra' keyword argument in the call to the adapter, it will " -"be silently overwritten." -msgstr "" -"El método :meth:`~LoggerAdapter.process` de :class:`LoggerAdapter` es donde " -"la información contextual se agrega a la salida del registro. Se pasa el " -"mensaje y los argumentos de palabra clave de la llamada logging, y devuelve " -"versiones (potencialmente) modificadas de estos para usar en la llamada al " -"logging subyacente. La implementación predeterminada de este método deja el " -"mensaje solo, pero inserta una clave 'extra' en el argumento de palabra " -"clave cuyo valor es el objeto tipo dict pasado al constructor. Por supuesto, " -"si ha pasado un argumento de palabra clave 'extra' en la llamada al " -"adaptador, se sobrescribirá silenciosamente." +"The :meth:`~LoggerAdapter.process` method of :class:`LoggerAdapter` is where the " +"contextual information is added to the logging output. It's passed the message and " +"keyword arguments of the logging call, and it passes back (potentially) modified " +"versions of these to use in the call to the underlying logger. The default " +"implementation of this method leaves the message alone, but inserts an 'extra' key " +"in the keyword argument whose value is the dict-like object passed to the " +"constructor. Of course, if you had passed an 'extra' keyword argument in the call to " +"the adapter, it will be silently overwritten." +msgstr "" +"El método :meth:`~LoggerAdapter.process` de :class:`LoggerAdapter` es donde la " +"información contextual se agrega a la salida del registro. Se pasa el mensaje y los " +"argumentos de palabra clave de la llamada logging, y devuelve versiones " +"(potencialmente) modificadas de estos para usar en la llamada al logging subyacente. " +"La implementación predeterminada de este método deja el mensaje solo, pero inserta " +"una clave 'extra' en el argumento de palabra clave cuyo valor es el objeto tipo dict " +"pasado al constructor. Por supuesto, si ha pasado un argumento de palabra clave " +"'extra' en la llamada al adaptador, se sobrescribirá silenciosamente." #: ../Doc/howto/logging-cookbook.rst:599 msgid "" -"The advantage of using 'extra' is that the values in the dict-like object " -"are merged into the :class:`LogRecord` instance's __dict__, allowing you to " -"use customized strings with your :class:`Formatter` instances which know " -"about the keys of the dict-like object. If you need a different method, e.g. " -"if you want to prepend or append the contextual information to the message " -"string, you just need to subclass :class:`LoggerAdapter` and override :meth:" -"`~LoggerAdapter.process` to do what you need. Here is a simple example::" -msgstr "" -"La ventaja de usar 'extra' es que los valores en el objeto dict se combinan " -"en la instancia :class:`LogRecord` __dict__, lo que le permite usar cadenas " -"personalizadas con sus instancias :class:`Formatter` que conocen las claves " -"del objeto dict. Si necesita un método diferente, por ejemplo, si desea " -"anteponer o agregar la información contextual a la cadena del mensaje, solo " -"necesita la subclase :class:`LoggerAdapter` y anular :meth:`~LoggerAdapter." -"process` para hacer lo que necesita. Aquí hay un ejemplo simple:" +"The advantage of using 'extra' is that the values in the dict-like object are merged " +"into the :class:`LogRecord` instance's __dict__, allowing you to use customized " +"strings with your :class:`Formatter` instances which know about the keys of the dict-" +"like object. If you need a different method, e.g. if you want to prepend or append " +"the contextual information to the message string, you just need to subclass :class:" +"`LoggerAdapter` and override :meth:`~LoggerAdapter.process` to do what you need. " +"Here is a simple example::" +msgstr "" +"La ventaja de usar 'extra' es que los valores en el objeto dict se combinan en la " +"instancia :class:`LogRecord` __dict__, lo que le permite usar cadenas personalizadas " +"con sus instancias :class:`Formatter` que conocen las claves del objeto dict. Si " +"necesita un método diferente, por ejemplo, si desea anteponer o agregar la " +"información contextual a la cadena del mensaje, solo necesita la subclase :class:" +"`LoggerAdapter` y anular :meth:`~LoggerAdapter.process` para hacer lo que necesita. " +"Aquí hay un ejemplo simple:" #: ../Doc/howto/logging-cookbook.rst:615 msgid "which you can use like this::" @@ -515,8 +485,8 @@ msgstr "que puede usar así::" #: ../Doc/howto/logging-cookbook.rst:620 msgid "" -"Then any events that you log to the adapter will have the value of " -"``some_conn_id`` prepended to the log messages." +"Then any events that you log to the adapter will have the value of ``some_conn_id`` " +"prepended to the log messages." msgstr "" "Luego, cualquier evento que registre en el adaptador tendrá el valor de " "``some_conn_id`` antepuesto a los mensajes de registro." @@ -524,22 +494,19 @@ msgstr "" #: ../Doc/howto/logging-cookbook.rst:624 msgid "Using objects other than dicts to pass contextual information" msgstr "" -"Usar objetos distintos a los diccionarios para transmitir información " -"contextual" +"Usar objetos distintos a los diccionarios para transmitir información contextual" #: ../Doc/howto/logging-cookbook.rst:626 msgid "" -"You don't need to pass an actual dict to a :class:`LoggerAdapter` - you " -"could pass an instance of a class which implements ``__getitem__`` and " -"``__iter__`` so that it looks like a dict to logging. This would be useful " -"if you want to generate values dynamically (whereas the values in a dict " -"would be constant)." +"You don't need to pass an actual dict to a :class:`LoggerAdapter` - you could pass " +"an instance of a class which implements ``__getitem__`` and ``__iter__`` so that it " +"looks like a dict to logging. This would be useful if you want to generate values " +"dynamically (whereas the values in a dict would be constant)." msgstr "" -"No es necesario pasar un diccionario real a la :class:`LoggerAdapter` - " -"puedes pasar una instancia de una clase que implemente ``__getitem__`` y " -"``__iter__`` de modo que parezca un diccionario para el logging. Esto es " -"útil si quieres generar valores dinámicamente (mientras que los valores en " -"un diccionario son constantes)." +"No es necesario pasar un diccionario real a la :class:`LoggerAdapter` - puedes pasar " +"una instancia de una clase que implemente ``__getitem__`` y ``__iter__`` de modo que " +"parezca un diccionario para el logging. Esto es útil si quieres generar valores " +"dinámicamente (mientras que los valores en un diccionario son constantes)." #: ../Doc/howto/logging-cookbook.rst:635 msgid "Using Filters to impart contextual information" @@ -547,39 +514,35 @@ msgstr "Usar filtros para impartir información contextual" #: ../Doc/howto/logging-cookbook.rst:637 msgid "" -"You can also add contextual information to log output using a user-defined :" -"class:`Filter`. ``Filter`` instances are allowed to modify the " -"``LogRecords`` passed to them, including adding additional attributes which " -"can then be output using a suitable format string, or if needed a custom :" -"class:`Formatter`." +"You can also add contextual information to log output using a user-defined :class:" +"`Filter`. ``Filter`` instances are allowed to modify the ``LogRecords`` passed to " +"them, including adding additional attributes which can then be output using a " +"suitable format string, or if needed a custom :class:`Formatter`." msgstr "" -"También puedes agregar información contextual a la salida del registro " -"utilizando un :class:`Filter` definido por el usuario. Las instancias de " -"``Filter`` pueden modificar los ``LogRecords`` que se les pasan, incluido el " -"agregado de atributos adicionales que luego se pueden generar utilizando " -"cadena de caracteres con el formato adecuado, o si es necesario, un :class:" -"`Formatter` personalizado." +"También puedes agregar información contextual a la salida del registro utilizando " +"un :class:`Filter` definido por el usuario. Las instancias de ``Filter`` pueden " +"modificar los ``LogRecords`` que se les pasan, incluido el agregado de atributos " +"adicionales que luego se pueden generar utilizando cadena de caracteres con el " +"formato adecuado, o si es necesario, un :class:`Formatter` personalizado." #: ../Doc/howto/logging-cookbook.rst:642 msgid "" -"For example in a web application, the request being processed (or at least, " -"the interesting parts of it) can be stored in a threadlocal (:class:" -"`threading.local`) variable, and then accessed from a ``Filter`` to add, " -"say, information from the request - say, the remote IP address and remote " -"user's username - to the ``LogRecord``, using the attribute names 'ip' and " -"'user' as in the ``LoggerAdapter`` example above. In that case, the same " -"format string can be used to get similar output to that shown above. Here's " -"an example script::" -msgstr "" -"Por ejemplo, en una aplicación web, la solicitud que se está procesando (o " -"al menos, las partes interesantes de la misma) se pueden almacenar en una " -"variable *threadlocal* (:class:`threading.local`) y luego se puede acceder a " -"ella desde ``Filter`` para agregar información de la solicitud, - digamos, " -"la dirección IP remota y el nombre de usuario-, al ``LogRecord``, usando los " -"nombres de atributo 'ip' y 'user' como en el ejemplo anterior de " -"``LoggerAdapter``. En ese caso, se puede usar el mismo formato de cadena de " -"caracteres para obtener un resultado similar al que se muestra arriba. Aquí " -"hay un script de ejemplo::" +"For example in a web application, the request being processed (or at least, the " +"interesting parts of it) can be stored in a threadlocal (:class:`threading.local`) " +"variable, and then accessed from a ``Filter`` to add, say, information from the " +"request - say, the remote IP address and remote user's username - to the " +"``LogRecord``, using the attribute names 'ip' and 'user' as in the ``LoggerAdapter`` " +"example above. In that case, the same format string can be used to get similar " +"output to that shown above. Here's an example script::" +msgstr "" +"Por ejemplo, en una aplicación web, la solicitud que se está procesando (o al menos, " +"las partes interesantes de la misma) se pueden almacenar en una variable " +"*threadlocal* (:class:`threading.local`) y luego se puede acceder a ella desde " +"``Filter`` para agregar información de la solicitud, - digamos, la dirección IP " +"remota y el nombre de usuario-, al ``LogRecord``, usando los nombres de atributo " +"'ip' y 'user' como en el ejemplo anterior de ``LoggerAdapter``. En ese caso, se " +"puede usar el mismo formato de cadena de caracteres para obtener un resultado " +"similar al que se muestra arriba. Aquí hay un script de ejemplo::" #: ../Doc/howto/logging-cookbook.rst:688 msgid "which, when run, produces something like:" @@ -592,101 +555,95 @@ msgstr "Logging a un sólo archivo desde múltiples procesos" # Traté de refrasear las primeras oraciones para que no sea super repetitivo. # No tengo claro cómo es todo el tema de socket y si está bien traducido "socket server", "working socket". #: ../Doc/howto/logging-cookbook.rst:711 -#, fuzzy msgid "" -"Although logging is thread-safe, and logging to a single file from multiple " -"threads in a single process *is* supported, logging to a single file from " -"*multiple processes* is *not* supported, because there is no standard way to " -"serialize access to a single file across multiple processes in Python. If " -"you need to log to a single file from multiple processes, one way of doing " -"this is to have all the processes log to a :class:`~handlers.SocketHandler`, " -"and have a separate process which implements a socket server which reads " -"from the socket and logs to file. (If you prefer, you can dedicate one " -"thread in one of the existing processes to perform this function.) :ref:" -"`This section ` documents this approach in more detail and " -"includes a working socket receiver which can be used as a starting point for " -"you to adapt in your own applications." +"Although logging is thread-safe, and logging to a single file from multiple threads " +"in a single process *is* supported, logging to a single file from *multiple " +"processes* is *not* supported, because there is no standard way to serialize access " +"to a single file across multiple processes in Python. If you need to log to a single " +"file from multiple processes, one way of doing this is to have all the processes log " +"to a :class:`~handlers.SocketHandler`, and have a separate process which implements " +"a socket server which reads from the socket and logs to file. (If you prefer, you " +"can dedicate one thread in one of the existing processes to perform this function.) :" +"ref:`This section ` documents this approach in more detail and " +"includes a working socket receiver which can be used as a starting point for you to " +"adapt in your own applications." msgstr "" "Aunque logging es seguro para subprocesos, y logging a un solo archivo desde " -"múltiples subprocesos en un solo proceso *es* compatible, el registro en un " -"solo archivo desde *múltiples procesos* *no* es compatible, porque no existe " -"una forma estándar de serializar el acceso a un solo archivo en múltiples " -"procesos en Python. Si necesita hacer esto último, una forma de abordarlo es " -"hacer que todos los procesos se registren en una :class:`~handlers." -"SocketHandler`, y tener un proceso separado que implemente un servidor de " -"socket que lee del socket y los registros para archivar. (Si lo prefiere, " -"puede dedicar un hilo en uno de los procesos existentes para realizar esta " -"función.) :ref: `Esta sección ` documenta este enfoque con " -"más detalle e incluye un receptor socket que funciona que se puede utilizar " -"como punto de partida para que se adapte a sus propias aplicaciones" +"múltiples subprocesos en un solo proceso *es* compatible, el registro en un solo " +"archivo desde *múltiples procesos* *no* es compatible, porque no existe una forma " +"estándar de serializar el acceso a un solo archivo en múltiples procesos en Python. " +"Si necesita hacer esto último, una forma de abordarlo es hacer que todos los " +"procesos se registren en una :class:`~handlers.SocketHandler`, y tener un proceso " +"separado que implemente un servidor de socket que lee del socket y los registros " +"para archivar. (Si lo prefiere, puede dedicar un hilo en uno de los procesos " +"existentes para realizar esta función.) :ref: `Esta sección ` " +"documenta este enfoque con más detalle e incluye un receptor socket que funciona que " +"se puede utilizar como punto de partida para que se adapte a sus propias " +"aplicaciones." #: ../Doc/howto/logging-cookbook.rst:724 msgid "" -"You could also write your own handler which uses the :class:" -"`~multiprocessing.Lock` class from the :mod:`multiprocessing` module to " -"serialize access to the file from your processes. The existing :class:" -"`FileHandler` and subclasses do not make use of :mod:`multiprocessing` at " -"present, though they may do so in the future. Note that at present, the :mod:" -"`multiprocessing` module does not provide working lock functionality on all " -"platforms (see https://bugs.python.org/issue3770)." -msgstr "" -"También puedes escribir tu propio gestor que use la clase :class:" -"`~multiprocessing.Lock` del módulo :mod:`multiprocessing` para serializar el " -"acceso al archivo desde tus procesos. La existente :class:`FileHandler` y " -"las subclases no hacen uso de :mod:`multiprocessing` en la actualidad, " -"aunque pueden hacerlo en el futuro. Tenga en cuenta que, en la actualidad, " -"el módulo :mod:`multiprocessing` no proporciona la funcionalidad de bloqueo " -"de trabajo en todas las plataformas (ver https://bugs.python.org/issue3770)." +"You could also write your own handler which uses the :class:`~multiprocessing.Lock` " +"class from the :mod:`multiprocessing` module to serialize access to the file from " +"your processes. The existing :class:`FileHandler` and subclasses do not make use of :" +"mod:`multiprocessing` at present, though they may do so in the future. Note that at " +"present, the :mod:`multiprocessing` module does not provide working lock " +"functionality on all platforms (see https://bugs.python.org/issue3770)." +msgstr "" +"También puedes escribir tu propio gestor que use la clase :class:`~multiprocessing." +"Lock` del módulo :mod:`multiprocessing` para serializar el acceso al archivo desde " +"tus procesos. La existente :class:`FileHandler` y las subclases no hacen uso de :mod:" +"`multiprocessing` en la actualidad, aunque pueden hacerlo en el futuro. Tenga en " +"cuenta que, en la actualidad, el módulo :mod:`multiprocessing` no proporciona la " +"funcionalidad de bloqueo de trabajo en todas las plataformas (ver https://bugs." +"python.org/issue3770)." #: ../Doc/howto/logging-cookbook.rst:734 msgid "" -"Alternatively, you can use a ``Queue`` and a :class:`QueueHandler` to send " -"all logging events to one of the processes in your multi-process " -"application. The following example script demonstrates how you can do this; " -"in the example a separate listener process listens for events sent by other " -"processes and logs them according to its own logging configuration. Although " -"the example only demonstrates one way of doing it (for example, you may want " -"to use a listener thread rather than a separate listener process -- the " -"implementation would be analogous) it does allow for completely different " -"logging configurations for the listener and the other processes in your " -"application, and can be used as the basis for code meeting your own specific " +"Alternatively, you can use a ``Queue`` and a :class:`QueueHandler` to send all " +"logging events to one of the processes in your multi-process application. The " +"following example script demonstrates how you can do this; in the example a separate " +"listener process listens for events sent by other processes and logs them according " +"to its own logging configuration. Although the example only demonstrates one way of " +"doing it (for example, you may want to use a listener thread rather than a separate " +"listener process -- the implementation would be analogous) it does allow for " +"completely different logging configurations for the listener and the other processes " +"in your application, and can be used as the basis for code meeting your own specific " "requirements::" msgstr "" -"Alternativamente, puede usar una ``Queue`` y :class:`QueueHandler` para " -"enviar todos los logging a uno de los procesos en su aplicación multi-" -"proceso. El siguiente script de ejemplo demuestra cómo puede hacer esto; en " -"el ejemplo, un proceso de escucha independiente escucha los eventos enviados " -"por otros procesos y los registra de acuerdo con su propia configuración de " -"registro. Aunque el ejemplo solo demuestra una forma de hacerlo (por " -"ejemplo, es posible que desee utilizar un hilo de escucha en lugar de un " -"proceso de escucha separado; la implementación sería análoga), permite " -"configuraciones de logging completamente diferentes para el oyente y los " -"otros procesos en su aplicación. Y se puede utilizar como base para el " -"código que cumpla con sus propios requisitos específicos::" +"Alternativamente, puede usar una ``Queue`` y :class:`QueueHandler` para enviar todos " +"los logging a uno de los procesos en su aplicación multi-proceso. El siguiente " +"script de ejemplo demuestra cómo puede hacer esto; en el ejemplo, un proceso de " +"escucha independiente escucha los eventos enviados por otros procesos y los registra " +"de acuerdo con su propia configuración de registro. Aunque el ejemplo solo demuestra " +"una forma de hacerlo (por ejemplo, es posible que desee utilizar un hilo de escucha " +"en lugar de un proceso de escucha separado; la implementación sería análoga), " +"permite configuraciones de logging completamente diferentes para el oyente y los " +"otros procesos en su aplicación. Y se puede utilizar como base para el código que " +"cumpla con sus propios requisitos específicos::" #: ../Doc/howto/logging-cookbook.rst:850 msgid "" -"A variant of the above script keeps the logging in the main process, in a " -"separate thread::" +"A variant of the above script keeps the logging in the main process, in a separate " +"thread::" msgstr "" -"Una variante del script anterior mantiene el logging en el proceso " -"principal, en un hilo separado::" +"Una variante del script anterior mantiene el logging en el proceso principal, en un " +"hilo separado::" #: ../Doc/howto/logging-cookbook.rst:945 msgid "" -"This variant shows how you can e.g. apply configuration for particular " -"loggers - e.g. the ``foo`` logger has a special handler which stores all " -"events in the ``foo`` subsystem in a file ``mplog-foo.log``. This will be " -"used by the logging machinery in the main process (even though the logging " -"events are generated in the worker processes) to direct the messages to the " -"appropriate destinations." +"This variant shows how you can e.g. apply configuration for particular loggers - e." +"g. the ``foo`` logger has a special handler which stores all events in the ``foo`` " +"subsystem in a file ``mplog-foo.log``. This will be used by the logging machinery in " +"the main process (even though the logging events are generated in the worker " +"processes) to direct the messages to the appropriate destinations." msgstr "" -"Esta variante muestra cómo puede, por ejemplo, aplicar la configuración para " -"logging particulares: el registrador ``foo`` tiene un gestor especial que " -"almacena todos los eventos en el subsistema ``foo`` en un archivo ``mplog-" -"foo.log``. Esto será utilizado por la maquinaria de registro en el proceso " -"principal (aunque los eventos logging se generen en los procesos de trabajo) " -"para dirigir los mensajes a los destinos apropiados." +"Esta variante muestra cómo puede, por ejemplo, aplicar la configuración para logging " +"particulares: el registrador ``foo`` tiene un gestor especial que almacena todos los " +"eventos en el subsistema ``foo`` en un archivo ``mplog-foo.log``. Esto será " +"utilizado por la maquinaria de registro en el proceso principal (aunque los eventos " +"logging se generen en los procesos de trabajo) para dirigir los mensajes a los " +"destinos apropiados." #: ../Doc/howto/logging-cookbook.rst:952 msgid "Using concurrent.futures.ProcessPoolExecutor" @@ -694,13 +651,11 @@ msgstr "Usando concurrent.futures.ProcessPoolExecutor" #: ../Doc/howto/logging-cookbook.rst:954 msgid "" -"If you want to use :class:`concurrent.futures.ProcessPoolExecutor` to start " -"your worker processes, you need to create the queue slightly differently. " -"Instead of" +"If you want to use :class:`concurrent.futures.ProcessPoolExecutor` to start your " +"worker processes, you need to create the queue slightly differently. Instead of" msgstr "" -"Si desea utilizar :class:`concurrent.futures.ProcessPoolExecutor` para " -"iniciar sus procesos de trabajo, debe crear la cola de manera ligeramente " -"diferente. En vez de" +"Si desea utilizar :class:`concurrent.futures.ProcessPoolExecutor` para iniciar sus " +"procesos de trabajo, debe crear la cola de manera ligeramente diferente. En vez de" #: ../Doc/howto/logging-cookbook.rst:962 msgid "you should use" @@ -722,225 +677,205 @@ msgstr "Usando rotación de archivos" #: ../Doc/howto/logging-cookbook.rst:992 msgid "" -"Sometimes you want to let a log file grow to a certain size, then open a new " -"file and log to that. You may want to keep a certain number of these files, " -"and when that many files have been created, rotate the files so that the " -"number of files and the size of the files both remain bounded. For this " -"usage pattern, the logging package provides a :class:`~handlers." -"RotatingFileHandler`::" +"Sometimes you want to let a log file grow to a certain size, then open a new file " +"and log to that. You may want to keep a certain number of these files, and when that " +"many files have been created, rotate the files so that the number of files and the " +"size of the files both remain bounded. For this usage pattern, the logging package " +"provides a :class:`~handlers.RotatingFileHandler`::" msgstr "" -"A veces, se desea dejar que un archivo de registro crezca hasta cierto " -"tamaño y luego abra un nuevo archivo e inicie sesión en él. Es posible que " -"desee conservar una cierta cantidad de estos archivos, y cuando se hayan " -"creado tantos archivos, rote los archivos para que la cantidad de archivos y " -"el tamaño de los archivos permanezcan limitados. Para este patrón de uso, el " -"paquete logging proporciona :class:`~handlers.RotatingFileHandler`::" +"A veces, se desea dejar que un archivo de registro crezca hasta cierto tamaño y " +"luego abra un nuevo archivo e inicie sesión en él. Es posible que desee conservar " +"una cierta cantidad de estos archivos, y cuando se hayan creado tantos archivos, " +"rote los archivos para que la cantidad de archivos y el tamaño de los archivos " +"permanezcan limitados. Para este patrón de uso, el paquete logging proporciona :" +"class:`~handlers.RotatingFileHandler`::" #: ../Doc/howto/logging-cookbook.rst:1024 msgid "" -"The result should be 6 separate files, each with part of the log history for " -"the application:" +"The result should be 6 separate files, each with part of the log history for the " +"application:" msgstr "" -"El resultado debe ser 6 archivos separados, cada uno con parte del historial " -"de registro de la aplicación:" +"El resultado debe ser 6 archivos separados, cada uno con parte del historial de " +"registro de la aplicación:" #: ../Doc/howto/logging-cookbook.rst:1036 msgid "" -"The most current file is always :file:`logging_rotatingfile_example.out`, " -"and each time it reaches the size limit it is renamed with the suffix " -"``.1``. Each of the existing backup files is renamed to increment the suffix " -"(``.1`` becomes ``.2``, etc.) and the ``.6`` file is erased." +"The most current file is always :file:`logging_rotatingfile_example.out`, and each " +"time it reaches the size limit it is renamed with the suffix ``.1``. Each of the " +"existing backup files is renamed to increment the suffix (``.1`` becomes ``.2``, " +"etc.) and the ``.6`` file is erased." msgstr "" -"El archivo más actual siempre es :file:`logging_rotatingfile_example.out`, y " -"cada vez que alcanza el límite de tamaño, se le cambia el nombre con el " -"sufijo``.1``. Se cambia el nombre de cada uno de los archivos de respaldo " -"existentes para incrementar el sufijo (``.1`` se convierte en ``.2``, etc.) " -"y se borra el archivo ``.6``." +"El archivo más actual siempre es :file:`logging_rotatingfile_example.out`, y cada " +"vez que alcanza el límite de tamaño, se le cambia el nombre con el sufijo``.1``. Se " +"cambia el nombre de cada uno de los archivos de respaldo existentes para incrementar " +"el sufijo (``.1`` se convierte en ``.2``, etc.) y se borra el archivo ``.6``." #: ../Doc/howto/logging-cookbook.rst:1041 msgid "" -"Obviously this example sets the log length much too small as an extreme " -"example. You would want to set *maxBytes* to an appropriate value." +"Obviously this example sets the log length much too small as an extreme example. " +"You would want to set *maxBytes* to an appropriate value." msgstr "" -"Obviamente, este ejemplo establece la longitud del registro demasiado " -"pequeña como un ejemplo extremo. Se querrá establecer *maxBytes* en un valor " -"apropiado." +"Obviamente, este ejemplo establece la longitud del registro demasiado pequeña como " +"un ejemplo extremo. Se querrá establecer *maxBytes* en un valor apropiado." #: ../Doc/howto/logging-cookbook.rst:1047 msgid "Use of alternative formatting styles" msgstr "Uso de estilos de formato alternativos" #: ../Doc/howto/logging-cookbook.rst:1049 -#, python-format msgid "" -"When logging was added to the Python standard library, the only way of " -"formatting messages with variable content was to use the %-formatting " -"method. Since then, Python has gained two new formatting approaches: :class:" -"`string.Template` (added in Python 2.4) and :meth:`str.format` (added in " -"Python 2.6)." +"When logging was added to the Python standard library, the only way of formatting " +"messages with variable content was to use the %-formatting method. Since then, " +"Python has gained two new formatting approaches: :class:`string.Template` (added in " +"Python 2.4) and :meth:`str.format` (added in Python 2.6)." msgstr "" -"Cuando se agregó logging a la biblioteca estándar de Python, la única forma " -"de formatear mensajes con contenido variable era usar el método de formateo " -"'%'. Desde entonces, Python ha ganado dos nuevos enfoques de formato: :class:" -"`string.Template` (agregado en Python 2.4) y :meth:`str.format` (agregado en " -"Python 2.6)." +"Cuando se agregó logging a la biblioteca estándar de Python, la única forma de " +"formatear mensajes con contenido variable era usar el método de formateo '%'. Desde " +"entonces, Python ha ganado dos nuevos enfoques de formato: :class:`string.Template` " +"(agregado en Python 2.4) y :meth:`str.format` (agregado en Python 2.6)." #: ../Doc/howto/logging-cookbook.rst:1055 msgid "" -"Logging (as of 3.2) provides improved support for these two additional " -"formatting styles. The :class:`Formatter` class been enhanced to take an " -"additional, optional keyword parameter named ``style``. This defaults to " -"``'%'``, but other possible values are ``'{'`` and ``'$'``, which correspond " -"to the other two formatting styles. Backwards compatibility is maintained by " -"default (as you would expect), but by explicitly specifying a style " -"parameter, you get the ability to specify format strings which work with :" -"meth:`str.format` or :class:`string.Template`. Here's an example console " -"session to show the possibilities:" -msgstr "" -"Logging (a partir de la versión 3.2) proporciona un soporte mejorado para " -"estos dos estilos de formato adicionales. La clase :class:`Formatter` ha " -"sido mejorada para tomar un parámetro de palabra clave adicional llamado " -"``style``. El valor predeterminado es ``'%'``, pero otros valores posibles " -"son ``'{'`` y ``'$'``, que corresponden a los otros dos estilos de formato. " -"La compatibilidad con versiones anteriores se mantiene de forma " -"predeterminada (como era de esperar), pero al especificar explícitamente un " -"parámetro de estilo, tiene la capacidad de especificar cadenas de formato " -"que funcionan con :meth:`str.format` o :class:`string.Template`. Aquí hay " -"una sesión de consola de ejemplo para mostrar las posibilidades:" +"Logging (as of 3.2) provides improved support for these two additional formatting " +"styles. The :class:`Formatter` class been enhanced to take an additional, optional " +"keyword parameter named ``style``. This defaults to ``'%'``, but other possible " +"values are ``'{'`` and ``'$'``, which correspond to the other two formatting styles. " +"Backwards compatibility is maintained by default (as you would expect), but by " +"explicitly specifying a style parameter, you get the ability to specify format " +"strings which work with :meth:`str.format` or :class:`string.Template`. Here's an " +"example console session to show the possibilities:" +msgstr "" +"Logging (a partir de la versión 3.2) proporciona un soporte mejorado para estos dos " +"estilos de formato adicionales. La clase :class:`Formatter` ha sido mejorada para " +"tomar un parámetro de palabra clave adicional llamado ``style``. El valor " +"predeterminado es ``'%'``, pero otros valores posibles son ``'{'`` y ``'$'``, que " +"corresponden a los otros dos estilos de formato. La compatibilidad con versiones " +"anteriores se mantiene de forma predeterminada (como era de esperar), pero al " +"especificar explícitamente un parámetro de estilo, tiene la capacidad de especificar " +"cadenas de formato que funcionan con :meth:`str.format` o :class:`string.Template`. " +"Aquí hay una sesión de consola de ejemplo para mostrar las posibilidades:" #: ../Doc/howto/logging-cookbook.rst:1089 -#, python-format msgid "" -"Note that the formatting of logging messages for final output to logs is " -"completely independent of how an individual logging message is constructed. " -"That can still use %-formatting, as shown here::" +"Note that the formatting of logging messages for final output to logs is completely " +"independent of how an individual logging message is constructed. That can still use " +"%-formatting, as shown here::" msgstr "" -"Tenga en cuenta que el formato de logging para la salida final a los " -"registros es completamente independiente de cómo se construye un mensaje de " -"registro individual. Para eso todavía puede usar el formateo \"%\", como se " -"muestra aquí:" +"Tenga en cuenta que el formato de logging para la salida final a los registros es " +"completamente independiente de cómo se construye un mensaje de registro individual. " +"Para eso todavía puede usar el formateo \"%\", como se muestra aquí:" # No entiendo este bloque en inglés ni en español :P #: ../Doc/howto/logging-cookbook.rst:1097 -#, python-format msgid "" -"Logging calls (``logger.debug()``, ``logger.info()`` etc.) only take " -"positional parameters for the actual logging message itself, with keyword " -"parameters used only for determining options for how to handle the actual " -"logging call (e.g. the ``exc_info`` keyword parameter to indicate that " -"traceback information should be logged, or the ``extra`` keyword parameter " -"to indicate additional contextual information to be added to the log). So " -"you cannot directly make logging calls using :meth:`str.format` or :class:" -"`string.Template` syntax, because internally the logging package uses " -"%-formatting to merge the format string and the variable arguments. There " -"would be no changing this while preserving backward compatibility, since all " -"logging calls which are out there in existing code will be using %-format " +"Logging calls (``logger.debug()``, ``logger.info()`` etc.) only take positional " +"parameters for the actual logging message itself, with keyword parameters used only " +"for determining options for how to handle the actual logging call (e.g. the " +"``exc_info`` keyword parameter to indicate that traceback information should be " +"logged, or the ``extra`` keyword parameter to indicate additional contextual " +"information to be added to the log). So you cannot directly make logging calls " +"using :meth:`str.format` or :class:`string.Template` syntax, because internally the " +"logging package uses %-formatting to merge the format string and the variable " +"arguments. There would be no changing this while preserving backward compatibility, " +"since all logging calls which are out there in existing code will be using %-format " "strings." msgstr "" -"Las llamadas de Logging (``logger.debug()``, ``logger.info()``, etc.) solo " -"toman parámetros posicionales para el mensaje de registro real en sí, con " -"parámetros de palabras clave que se usan solo para determinar opciones sobre " -"cómo gestionar la llamada real a Logging (por ejemplo, el parámetro de " -"palabra clave ``exc_info`` para indicar que la información de rastreo debe " -"registrarse, o el parámetro de palabra clave ``extra`` para indicar " -"información contextual adicional que se agregará al registro). Por lo tanto, " -"no puede realizar llamadas de registro directamente usando la sintaxis :meth:" -"`str.format` o :class:`string.Template`, porque internamente el paquete de " -"registro usa formato % para fusionar la cadena de formato y los argumentos " -"de las variables. No habría ningún cambio en esto mientras se conserva la " -"compatibilidad con versiones anteriores, ya que todas las llamadas de " -"registro que están en el código existente usarán cadenas de formato %." +"Las llamadas de Logging (``logger.debug()``, ``logger.info()``, etc.) solo toman " +"parámetros posicionales para el mensaje de registro real en sí, con parámetros de " +"palabras clave que se usan solo para determinar opciones sobre cómo gestionar la " +"llamada real a Logging (por ejemplo, el parámetro de palabra clave ``exc_info`` para " +"indicar que la información de rastreo debe registrarse, o el parámetro de palabra " +"clave ``extra`` para indicar información contextual adicional que se agregará al " +"registro). Por lo tanto, no puede realizar llamadas de registro directamente usando " +"la sintaxis :meth:`str.format` o :class:`string.Template`, porque internamente el " +"paquete de registro usa formato % para fusionar la cadena de formato y los " +"argumentos de las variables. No habría ningún cambio en esto mientras se conserva la " +"compatibilidad con versiones anteriores, ya que todas las llamadas de registro que " +"están en el código existente usarán cadenas de formato %." #: ../Doc/howto/logging-cookbook.rst:1110 msgid "" -"There is, however, a way that you can use {}- and $- formatting to construct " -"your individual log messages. Recall that for a message you can use an " -"arbitrary object as a message format string, and that the logging package " -"will call ``str()`` on that object to get the actual format string. Consider " -"the following two classes::" +"There is, however, a way that you can use {}- and $- formatting to construct your " +"individual log messages. Recall that for a message you can use an arbitrary object " +"as a message format string, and that the logging package will call ``str()`` on that " +"object to get the actual format string. Consider the following two classes::" msgstr "" -"Sin embargo, existe una forma en la que puede usar el formato {} - y $ - " -"para construir sus mensajes de registro individuales. Recuerde que para un " -"mensaje puede usar un objeto arbitrario como una cadena de caracteres de " -"formato de mensaje, y que el paquete logging llamará a ``str()`` en ese " -"objeto para obtener la cadena de caracteres de formato real. Considere las " -"siguientes dos clases::" +"Sin embargo, existe una forma en la que puede usar el formato {} - y $ - para " +"construir sus mensajes de registro individuales. Recuerde que para un mensaje puede " +"usar un objeto arbitrario como una cadena de caracteres de formato de mensaje, y que " +"el paquete logging llamará a ``str()`` en ese objeto para obtener la cadena de " +"caracteres de formato real. Considere las siguientes dos clases::" #: ../Doc/howto/logging-cookbook.rst:1134 -#, python-format msgid "" "Either of these can be used in place of a format string, to allow {}- or $-" -"formatting to be used to build the actual \"message\" part which appears in " -"the formatted log output in place of \"%(message)s\" or \"{message}\" or " -"\"$message\". It's a little unwieldy to use the class names whenever you " -"want to log something, but it's quite palatable if you use an alias such as " -"__ (double underscore --- not to be confused with _, the single underscore " -"used as a synonym/alias for :func:`gettext.gettext` or its brethren)." -msgstr "" -"Cualquiera de estos puede usarse en lugar de una cadena de formato, para " -"permitir que se use el formato {} - o $ - para construir la parte del " -"\"mensaje\" real que aparece en la salida del registro en lugar de " -"\"%(message)s\" o \"{message}\" o \"$message\". Es un poco difícil de " -"manejar usar los nombres de las clases siempre que quieras registrar algo, " -"pero es bastante aceptable si usas un alias como __ (doble subrayado --- no " -"confundir con _, el subrayado simple usado como sinónimo/alias para :func:" -"`gettext.gettext` o sus hermanos)." +"formatting to be used to build the actual \"message\" part which appears in the " +"formatted log output in place of \"%(message)s\" or \"{message}\" or \"$message\". " +"It's a little unwieldy to use the class names whenever you want to log something, " +"but it's quite palatable if you use an alias such as __ (double underscore --- not " +"to be confused with _, the single underscore used as a synonym/alias for :func:" +"`gettext.gettext` or its brethren)." +msgstr "" +"Cualquiera de estos puede usarse en lugar de una cadena de formato, para permitir " +"que se use el formato {} - o $ - para construir la parte del \"mensaje\" real que " +"aparece en la salida del registro en lugar de \"%(message)s\" o \"{message}\" o " +"\"$message\". Es un poco difícil de manejar usar los nombres de las clases siempre " +"que quieras registrar algo, pero es bastante aceptable si usas un alias como __ " +"(doble subrayado --- no confundir con _, el subrayado simple usado como sinónimo/" +"alias para :func:`gettext.gettext` o sus hermanos)." #: ../Doc/howto/logging-cookbook.rst:1142 msgid "" -"The above classes are not included in Python, though they're easy enough to " -"copy and paste into your own code. They can be used as follows (assuming " -"that they're declared in a module called ``wherever``):" +"The above classes are not included in Python, though they're easy enough to copy and " +"paste into your own code. They can be used as follows (assuming that they're " +"declared in a module called ``wherever``):" msgstr "" -"Las clases anteriores no están incluidas en Python, aunque son bastante " -"fáciles de copiar y pegar en su propio código. Se pueden usar de la " -"siguiente manera (asumiendo que están declaradas en un módulo llamado " -"``wherever``):" +"Las clases anteriores no están incluidas en Python, aunque son bastante fáciles de " +"copiar y pegar en su propio código. Se pueden usar de la siguiente manera (asumiendo " +"que están declaradas en un módulo llamado ``wherever``):" #: ../Doc/howto/logging-cookbook.rst:1164 msgid "" -"While the above examples use ``print()`` to show how the formatting works, " -"you would of course use ``logger.debug()`` or similar to actually log using " -"this approach." +"While the above examples use ``print()`` to show how the formatting works, you would " +"of course use ``logger.debug()`` or similar to actually log using this approach." msgstr "" -"Si bien los ejemplos anteriores usan ``print()`` para mostrar cómo funciona " -"el formateo, por supuesto usaría ``logger.debug()`` o similar para realmente " -"registrar usando este enfoque." +"Si bien los ejemplos anteriores usan ``print()`` para mostrar cómo funciona el " +"formateo, por supuesto usaría ``logger.debug()`` o similar para realmente registrar " +"usando este enfoque." #: ../Doc/howto/logging-cookbook.rst:1168 msgid "" -"One thing to note is that you pay no significant performance penalty with " -"this approach: the actual formatting happens not when you make the logging " -"call, but when (and if) the logged message is actually about to be output to " -"a log by a handler. So the only slightly unusual thing which might trip you " -"up is that the parentheses go around the format string and the arguments, " -"not just the format string. That's because the __ notation is just syntax " -"sugar for a constructor call to one of the XXXMessage classes." +"One thing to note is that you pay no significant performance penalty with this " +"approach: the actual formatting happens not when you make the logging call, but when " +"(and if) the logged message is actually about to be output to a log by a handler. So " +"the only slightly unusual thing which might trip you up is that the parentheses go " +"around the format string and the arguments, not just the format string. That's " +"because the __ notation is just syntax sugar for a constructor call to one of the " +"XXXMessage classes." msgstr "" "Una cosa a tener en cuenta es que no paga una penalización de rendimiento " -"significativa con este enfoque: el formateo real no ocurre cuando realiza la " -"llamada a logging, sino cuando (y si) el mensaje registrado está a punto de " -"ser enviado a un registro por un gestor. Entonces, lo único un poco inusual " -"que podría confundirte es que los paréntesis rodean la cadena de formato y " -"los argumentos, no solo la cadena de formato. Eso es porque la notación __ " -"es solo azúcar sintáctico para una llamada de constructor a una de las " -"clases XXXMessage." +"significativa con este enfoque: el formateo real no ocurre cuando realiza la llamada " +"a logging, sino cuando (y si) el mensaje registrado está a punto de ser enviado a un " +"registro por un gestor. Entonces, lo único un poco inusual que podría confundirte es " +"que los paréntesis rodean la cadena de formato y los argumentos, no solo la cadena " +"de formato. Eso es porque la notación __ es solo azúcar sintáctico para una llamada " +"de constructor a una de las clases XXXMessage." #: ../Doc/howto/logging-cookbook.rst:1176 msgid "" -"If you prefer, you can use a :class:`LoggerAdapter` to achieve a similar " -"effect to the above, as in the following example::" +"If you prefer, you can use a :class:`LoggerAdapter` to achieve a similar effect to " +"the above, as in the following example::" msgstr "" -"Si lo prefiere, puede usar :class:`LoggerAdapter` para lograr un efecto " -"similar al anterior, como en el siguiente ejemplo::" +"Si lo prefiere, puede usar :class:`LoggerAdapter` para lograr un efecto similar al " +"anterior, como en el siguiente ejemplo::" #: ../Doc/howto/logging-cookbook.rst:1207 msgid "" -"The above script should log the message ``Hello, world!`` when run with " -"Python 3.2 or later." +"The above script should log the message ``Hello, world!`` when run with Python 3.2 " +"or later." msgstr "" -"El script anterior debería registrar el mensaje ``Hello, world!`` Cuando se " -"ejecuta con Python 3.2 o posterior." +"El script anterior debería registrar el mensaje ``Hello, world!`` Cuando se ejecuta " +"con Python 3.2 o posterior." #: ../Doc/howto/logging-cookbook.rst:1216 msgid "Customizing ``LogRecord``" @@ -948,162 +883,152 @@ msgstr "Personalización de ``LogRecord``" #: ../Doc/howto/logging-cookbook.rst:1218 msgid "" -"Every logging event is represented by a :class:`LogRecord` instance. When an " -"event is logged and not filtered out by a logger's level, a :class:" -"`LogRecord` is created, populated with information about the event and then " -"passed to the handlers for that logger (and its ancestors, up to and " -"including the logger where further propagation up the hierarchy is " -"disabled). Before Python 3.2, there were only two places where this creation " -"was done:" -msgstr "" -"Cada evento logging está representado por una instancia :class:`LogRecord`. " -"Cuando se registra un evento y no se filtra por el nivel de un registrador, " -"se crea :class:`LogRecord`, se llena con información sobre el evento y luego " -"se pasa a los gestores de ese registrador (y sus antepasados, hasta (e " -"incluyéndolo) el registrador donde se deshabilita una mayor propagación en " -"la jerarquía). Antes de Python 3.2, solo había dos lugares donde se " -"realizaba esta creación:" +"Every logging event is represented by a :class:`LogRecord` instance. When an event " +"is logged and not filtered out by a logger's level, a :class:`LogRecord` is created, " +"populated with information about the event and then passed to the handlers for that " +"logger (and its ancestors, up to and including the logger where further propagation " +"up the hierarchy is disabled). Before Python 3.2, there were only two places where " +"this creation was done:" +msgstr "" +"Cada evento logging está representado por una instancia :class:`LogRecord`. Cuando " +"se registra un evento y no se filtra por el nivel de un registrador, se crea :class:" +"`LogRecord`, se llena con información sobre el evento y luego se pasa a los gestores " +"de ese registrador (y sus antepasados, hasta (e incluyéndolo) el registrador donde " +"se deshabilita una mayor propagación en la jerarquía). Antes de Python 3.2, solo " +"había dos lugares donde se realizaba esta creación:" #: ../Doc/howto/logging-cookbook.rst:1225 msgid "" -":meth:`Logger.makeRecord`, which is called in the normal process of logging " -"an event. This invoked :class:`LogRecord` directly to create an instance." +":meth:`Logger.makeRecord`, which is called in the normal process of logging an " +"event. This invoked :class:`LogRecord` directly to create an instance." msgstr "" -":meth:`Logger.makeRecord`, que se llama en el proceso normal de registro de " -"un evento. Esto invoca :class:`LogRecord` directamente para crear una " -"instancia." +":meth:`Logger.makeRecord`, que se llama en el proceso normal de registro de un " +"evento. Esto invoca :class:`LogRecord` directamente para crear una instancia." #: ../Doc/howto/logging-cookbook.rst:1228 msgid "" -":func:`makeLogRecord`, which is called with a dictionary containing " -"attributes to be added to the LogRecord. This is typically invoked when a " -"suitable dictionary has been received over the network (e.g. in pickle form " -"via a :class:`~handlers.SocketHandler`, or in JSON form via an :class:" -"`~handlers.HTTPHandler`)." +":func:`makeLogRecord`, which is called with a dictionary containing attributes to be " +"added to the LogRecord. This is typically invoked when a suitable dictionary has " +"been received over the network (e.g. in pickle form via a :class:`~handlers." +"SocketHandler`, or in JSON form via an :class:`~handlers.HTTPHandler`)." msgstr "" -":func:`makeLogRecord`, que se llama con un diccionario que contiene " -"atributos que se agregarán al *LogRecord*. Esto se suele invocar cuando se " -"ha recibido un diccionario adecuado a través de la red (por ejemplo, en " -"forma de *pickle* a través de :class:`~handlers.SocketHandler`, o en formato " -"JSON a través de :class:`~handlers.HTTPHandler`)." +":func:`makeLogRecord`, que se llama con un diccionario que contiene atributos que se " +"agregarán al *LogRecord*. Esto se suele invocar cuando se ha recibido un diccionario " +"adecuado a través de la red (por ejemplo, en forma de *pickle* a través de :class:" +"`~handlers.SocketHandler`, o en formato JSON a través de :class:`~handlers." +"HTTPHandler`)." #: ../Doc/howto/logging-cookbook.rst:1234 msgid "" "This has usually meant that if you need to do anything special with a :class:" "`LogRecord`, you've had to do one of the following." msgstr "" -"Por lo general, esto significa que si necesita hacer algo especial con :" -"class:`LogRecord`, debe hacer una de las siguientes cosas." +"Por lo general, esto significa que si necesita hacer algo especial con :class:" +"`LogRecord`, debe hacer una de las siguientes cosas." #: ../Doc/howto/logging-cookbook.rst:1237 msgid "" -"Create your own :class:`Logger` subclass, which overrides :meth:`Logger." -"makeRecord`, and set it using :func:`~logging.setLoggerClass` before any " -"loggers that you care about are instantiated." +"Create your own :class:`Logger` subclass, which overrides :meth:`Logger.makeRecord`, " +"and set it using :func:`~logging.setLoggerClass` before any loggers that you care " +"about are instantiated." msgstr "" -"Cree su propia subclase :class:`Logger`, que anula :meth:`Logger." -"makeRecord`, y configúrelo usando :func:`~logging.setLoggerClass` antes de " -"que se creen instancias de los registradores que le interesan." +"Cree su propia subclase :class:`Logger`, que anula :meth:`Logger.makeRecord`, y " +"configúrelo usando :func:`~logging.setLoggerClass` antes de que se creen instancias " +"de los registradores que le interesan." #: ../Doc/howto/logging-cookbook.rst:1240 msgid "" -"Add a :class:`Filter` to a logger or handler, which does the necessary " -"special manipulation you need when its :meth:`~Filter.filter` method is " -"called." +"Add a :class:`Filter` to a logger or handler, which does the necessary special " +"manipulation you need when its :meth:`~Filter.filter` method is called." msgstr "" -"Agrega un :class:`Filter` a un registrador o gestor, que realiza la " -"manipulación especial necesaria que necesita cuando se llama a su método :" -"meth:`~Filter.filter`." +"Agrega un :class:`Filter` a un registrador o gestor, que realiza la manipulación " +"especial necesaria que necesita cuando se llama a su método :meth:`~Filter.filter`." #: ../Doc/howto/logging-cookbook.rst:1244 msgid "" -"The first approach would be a little unwieldy in the scenario where (say) " -"several different libraries wanted to do different things. Each would " -"attempt to set its own :class:`Logger` subclass, and the one which did this " -"last would win." +"The first approach would be a little unwieldy in the scenario where (say) several " +"different libraries wanted to do different things. Each would attempt to set its " +"own :class:`Logger` subclass, and the one which did this last would win." msgstr "" "El primer enfoque sería un poco difícil de manejar en el escenario en el que " -"(digamos) varias bibliotecas diferentes quisieran hacer cosas diferentes. " -"Cada uno intentaría establecer su propia subclase :class:`Logger`, y el que " -"hiciera esto último ganaría." +"(digamos) varias bibliotecas diferentes quisieran hacer cosas diferentes. Cada uno " +"intentaría establecer su propia subclase :class:`Logger`, y el que hiciera esto " +"último ganaría." #: ../Doc/howto/logging-cookbook.rst:1249 msgid "" -"The second approach works reasonably well for many cases, but does not allow " -"you to e.g. use a specialized subclass of :class:`LogRecord`. Library " -"developers can set a suitable filter on their loggers, but they would have " -"to remember to do this every time they introduced a new logger (which they " -"would do simply by adding new packages or modules and doing ::" +"The second approach works reasonably well for many cases, but does not allow you to " +"e.g. use a specialized subclass of :class:`LogRecord`. Library developers can set a " +"suitable filter on their loggers, but they would have to remember to do this every " +"time they introduced a new logger (which they would do simply by adding new packages " +"or modules and doing ::" msgstr "" -"El segundo enfoque funciona razonablemente bien en muchos casos, pero no le " -"permite, por ejemplo, usar una subclase especializada de :class:`LogRecord`. " -"Los desarrolladores de bibliotecas pueden establecer un filtro adecuado en " -"sus registradores, pero tendrían que recordar hacerlo cada vez que " -"introduzcan un nuevo registrador (lo que harían simplemente agregando nuevos " -"paquetes o módulos y haciendo ::" +"El segundo enfoque funciona razonablemente bien en muchos casos, pero no le permite, " +"por ejemplo, usar una subclase especializada de :class:`LogRecord`. Los " +"desarrolladores de bibliotecas pueden establecer un filtro adecuado en sus " +"registradores, pero tendrían que recordar hacerlo cada vez que introduzcan un nuevo " +"registrador (lo que harían simplemente agregando nuevos paquetes o módulos y " +"haciendo ::" #: ../Doc/howto/logging-cookbook.rst:1257 msgid "" -"at module level). It's probably one too many things to think about. " -"Developers could also add the filter to a :class:`~logging.NullHandler` " -"attached to their top-level logger, but this would not be invoked if an " -"application developer attached a handler to a lower-level library logger --- " -"so output from that handler would not reflect the intentions of the library " -"developer." +"at module level). It's probably one too many things to think about. Developers could " +"also add the filter to a :class:`~logging.NullHandler` attached to their top-level " +"logger, but this would not be invoked if an application developer attached a handler " +"to a lower-level library logger --- so output from that handler would not reflect " +"the intentions of the library developer." msgstr "" -"a nivel de módulo). Probablemente sean demasiadas cosas en las que pensar. " -"Los desarrolladores también podrían agregar el filtro a :class:`~logging." -"NullHandler` adjunto a su registrador de nivel superior, pero esto no se " -"invocaría si un desarrollador de aplicaciones adjuntara un controlador a un " -"registrador de biblioteca de nivel inferior --- así que la salida de ese " -"gestor no reflejaría las intenciones del desarrollador de la biblioteca." +"a nivel de módulo). Probablemente sean demasiadas cosas en las que pensar. Los " +"desarrolladores también podrían agregar el filtro a :class:`~logging.NullHandler` " +"adjunto a su registrador de nivel superior, pero esto no se invocaría si un " +"desarrollador de aplicaciones adjuntara un controlador a un registrador de " +"biblioteca de nivel inferior --- así que la salida de ese gestor no reflejaría las " +"intenciones del desarrollador de la biblioteca." # ¿"fábrica"? #: ../Doc/howto/logging-cookbook.rst:1263 #, fuzzy msgid "" -"In Python 3.2 and later, :class:`~logging.LogRecord` creation is done " -"through a factory, which you can specify. The factory is just a callable you " -"can set with :func:`~logging.setLogRecordFactory`, and interrogate with :" -"func:`~logging.getLogRecordFactory`. The factory is invoked with the same " -"signature as the :class:`~logging.LogRecord` constructor, as :class:" -"`LogRecord` is the default setting for the factory." +"In Python 3.2 and later, :class:`~logging.LogRecord` creation is done through a " +"factory, which you can specify. The factory is just a callable you can set with :" +"func:`~logging.setLogRecordFactory`, and interrogate with :func:`~logging." +"getLogRecordFactory`. The factory is invoked with the same signature as the :class:" +"`~logging.LogRecord` constructor, as :class:`LogRecord` is the default setting for " +"the factory." msgstr "" -"En Python 3.2 y posterior, la creación :class:`~logging.LogRecord` se " -"realiza a través de una fábrica, que puede especificar. La fábrica es solo " -"un invocable que puede configurar con :func:`~logging.setLogRecordFactory`, " -"e interrogar con :func:`~logging.getLogRecordFactory`. La fábrica se invoca " -"con la misma firma que el constructor :class:`~logging.LogRecord`, ya que :" -"class:`LogRecord` es la configuración predeterminada de la fábrica." +"En Python 3.2 y posterior, la creación :class:`~logging.LogRecord` se realiza a " +"través de una fábrica, que puede especificar. La fábrica es solo un invocable que " +"puede configurar con :func:`~logging.setLogRecordFactory`, e interrogar con :func:" +"`~logging.getLogRecordFactory`. La fábrica se invoca con la misma firma que el " +"constructor :class:`~logging.LogRecord`, ya que :class:`LogRecord` es la " +"configuración predeterminada de la fábrica." #: ../Doc/howto/logging-cookbook.rst:1270 msgid "" -"This approach allows a custom factory to control all aspects of LogRecord " -"creation. For example, you could return a subclass, or just add some " -"additional attributes to the record once created, using a pattern similar to " -"this::" +"This approach allows a custom factory to control all aspects of LogRecord creation. " +"For example, you could return a subclass, or just add some additional attributes to " +"the record once created, using a pattern similar to this::" msgstr "" -"Este enfoque permite que una fábrica personalizada controle todos los " -"aspectos de la creación de *LogRecord*. Por ejemplo, podría devolver una " -"subclase, o simplemente agregar algunos atributos adicionales al registro " -"una vez creado, usando un patrón similar a este::" +"Este enfoque permite que una fábrica personalizada controle todos los aspectos de la " +"creación de *LogRecord*. Por ejemplo, podría devolver una subclase, o simplemente " +"agregar algunos atributos adicionales al registro una vez creado, usando un patrón " +"similar a este::" #: ../Doc/howto/logging-cookbook.rst:1283 msgid "" -"This pattern allows different libraries to chain factories together, and as " -"long as they don't overwrite each other's attributes or unintentionally " -"overwrite the attributes provided as standard, there should be no surprises. " -"However, it should be borne in mind that each link in the chain adds run-" -"time overhead to all logging operations, and the technique should only be " -"used when the use of a :class:`Filter` does not provide the desired result." -msgstr "" -"Este patrón permite que diferentes bibliotecas encadenen fábricas juntas, y " -"siempre que no sobrescriban los atributos de las demás o sobrescriban " -"involuntariamente los atributos proporcionados como estándar, no debería " -"haber sorpresas. Sin embargo, debe tenerse en cuenta que cada eslabón de la " -"cadena agrega una sobrecarga de tiempo de ejecución a todas las operaciones " -"de registro, y la técnica solo debe usarse cuando el uso de :class:`Filter` " -"no proporciona el resultado deseado." +"This pattern allows different libraries to chain factories together, and as long as " +"they don't overwrite each other's attributes or unintentionally overwrite the " +"attributes provided as standard, there should be no surprises. However, it should be " +"borne in mind that each link in the chain adds run-time overhead to all logging " +"operations, and the technique should only be used when the use of a :class:`Filter` " +"does not provide the desired result." +msgstr "" +"Este patrón permite que diferentes bibliotecas encadenen fábricas juntas, y siempre " +"que no sobrescriban los atributos de las demás o sobrescriban involuntariamente los " +"atributos proporcionados como estándar, no debería haber sorpresas. Sin embargo, " +"debe tenerse en cuenta que cada eslabón de la cadena agrega una sobrecarga de tiempo " +"de ejecución a todas las operaciones de registro, y la técnica solo debe usarse " +"cuando el uso de :class:`Filter` no proporciona el resultado deseado." #: ../Doc/howto/logging-cookbook.rst:1294 msgid "Subclassing QueueHandler - a ZeroMQ example" @@ -1111,22 +1036,21 @@ msgstr "Subclasificación QueueHandler - un ejemplo de ZeroMQ" #: ../Doc/howto/logging-cookbook.rst:1296 msgid "" -"You can use a :class:`QueueHandler` subclass to send messages to other kinds " -"of queues, for example a ZeroMQ 'publish' socket. In the example below,the " -"socket is created separately and passed to the handler (as its 'queue')::" +"You can use a :class:`QueueHandler` subclass to send messages to other kinds of " +"queues, for example a ZeroMQ 'publish' socket. In the example below,the socket is " +"created separately and passed to the handler (as its 'queue')::" msgstr "" -"Puede usar una subclase :class:`QueueHandler` para enviar mensajes a otros " -"tipos de colas, por ejemplo, un socket de 'publicación' ZeroMQ. En el " -"siguiente ejemplo, el socket se crea por separado y se pasa al gestor (como " -"su 'cola')::" +"Puede usar una subclase :class:`QueueHandler` para enviar mensajes a otros tipos de " +"colas, por ejemplo, un socket de 'publicación' ZeroMQ. En el siguiente ejemplo, el " +"socket se crea por separado y se pasa al gestor (como su 'cola')::" #: ../Doc/howto/logging-cookbook.rst:1315 msgid "" -"Of course there are other ways of organizing this, for example passing in " -"the data needed by the handler to create the socket::" +"Of course there are other ways of organizing this, for example passing in the data " +"needed by the handler to create the socket::" msgstr "" -"Por supuesto, hay otras formas de organizar esto, por ejemplo, pasando los " -"datos que necesita el gestor para crear el socket::" +"Por supuesto, hay otras formas de organizar esto, por ejemplo, pasando los datos que " +"necesita el gestor para crear el socket::" #: ../Doc/howto/logging-cookbook.rst:1333 msgid "Subclassing QueueListener - a ZeroMQ example" @@ -1134,12 +1058,12 @@ msgstr "Subclasificación QueueListener - un ejemplo de ZeroMQ" #: ../Doc/howto/logging-cookbook.rst:1335 msgid "" -"You can also subclass :class:`QueueListener` to get messages from other " -"kinds of queues, for example a ZeroMQ 'subscribe' socket. Here's an example::" +"You can also subclass :class:`QueueListener` to get messages from other kinds of " +"queues, for example a ZeroMQ 'subscribe' socket. Here's an example::" msgstr "" -"También puede subclasificar :class:`QueueListener` para obtener mensajes de " -"otros tipos de colas, por ejemplo, un socket de 'suscripción' de ZeroMQ. " -"Aquí tienes un ejemplo::" +"También puede subclasificar :class:`QueueListener` para obtener mensajes de otros " +"tipos de colas, por ejemplo, un socket de 'suscripción' de ZeroMQ. Aquí tienes un " +"ejemplo::" #: ../Doc/howto/logging-cookbook.rst:1354 msgid "Module :mod:`logging`" @@ -1147,7 +1071,7 @@ msgstr "Módulo :mod:`logging`" #: ../Doc/howto/logging-cookbook.rst:1354 msgid "API reference for the logging module." -msgstr "Referencia de API para el módulo logging" +msgstr "Referencia de API para el módulo logging." #: ../Doc/howto/logging-cookbook.rst:1357 msgid "Module :mod:`logging.config`" @@ -1163,7 +1087,7 @@ msgstr "Módulo :mod:`logging.handlers`" #: ../Doc/howto/logging-cookbook.rst:1360 msgid "Useful handlers included with the logging module." -msgstr "Gestores útiles incluidos con el módulo logging" +msgstr "Gestores útiles incluidos con el módulo logging." #: ../Doc/howto/logging-cookbook.rst:1362 msgid ":ref:`A basic logging tutorial `" @@ -1175,55 +1099,53 @@ msgstr ":ref:`Un tutorial de logging más avanzado `" #: ../Doc/howto/logging-cookbook.rst:1368 msgid "An example dictionary-based configuration" -msgstr "Una configuración de ejemplo basada en diccionario." +msgstr "Una configuración de ejemplo basada en diccionario" #: ../Doc/howto/logging-cookbook.rst:1370 msgid "" -"Below is an example of a logging configuration dictionary - it's taken from " -"the `documentation on the Django project `_. This dictionary is passed to :" -"func:`~config.dictConfig` to put the configuration into effect::" +"Below is an example of a logging configuration dictionary - it's taken from the " +"`documentation on the Django project `_. This dictionary is passed to :func:`~config." +"dictConfig` to put the configuration into effect::" msgstr "" -"A continuación se muestra un ejemplo de un diccionario de configuración de " -"logging, tomado de la `documentación del proyecto Django `_. Este " -"diccionario se pasa a :func:`~config.dictConfig` para poner en efecto la " -"configuración::" +"A continuación se muestra un ejemplo de un diccionario de configuración de logging, " +"tomado de la `documentación del proyecto Django `_. Este diccionario se pasa a :func:" +"`~config.dictConfig` para poner en efecto la configuración::" #: ../Doc/howto/logging-cookbook.rst:1426 msgid "" -"For more information about this configuration, you can see the `relevant " -"section `_ of the Django documentation." +"For more information about this configuration, you can see the `relevant section " +"`_ of the " +"Django documentation." msgstr "" "Para obtener más información sobre esta configuración, puede ver la `sección " -"correspondiente `_ de la documentación de Django." +"correspondiente `_ de la documentación de Django." #: ../Doc/howto/logging-cookbook.rst:1433 msgid "Using a rotator and namer to customize log rotation processing" msgstr "" -"Usar un rotador y un nombre para personalizar el procesamiento de rotación " -"de registros" +"Usar un rotador y un nombre para personalizar el procesamiento de rotación de " +"registros" #: ../Doc/howto/logging-cookbook.rst:1435 msgid "" -"An example of how you can define a namer and rotator is given in the " -"following snippet, which shows zlib-based compression of the log file::" +"An example of how you can define a namer and rotator is given in the following " +"snippet, which shows zlib-based compression of the log file::" msgstr "" -"Un ejemplo de cómo puede definir un nombre y un rotador se da en el " -"siguiente fragmento, que muestra la compresión basada en zlib del archivo de " -"registro::" +"Un ejemplo de cómo puede definir un nombre y un rotador se da en el siguiente " +"fragmento, que muestra la compresión basada en zlib del archivo de registro::" #: ../Doc/howto/logging-cookbook.rst:1453 msgid "" "These are not \"true\" .gz files, as they are bare compressed data, with no " -"\"container\" such as you’d find in an actual gzip file. This snippet is " -"just for illustration purposes." +"\"container\" such as you’d find in an actual gzip file. This snippet is just for " +"illustration purposes." msgstr "" -"Estos no son archivos .gz \"verdaderos\", ya que son datos comprimidos sin " -"ningún \"contenedor\" como el que encontraría en un archivo gzip real. Este " -"fragmento es solo para fines ilustrativos." +"Estos no son archivos .gz \"verdaderos\", ya que son datos comprimidos sin ningún " +"\"contenedor\" como el que encontraría en un archivo gzip real. Este fragmento es " +"solo para fines ilustrativos." #: ../Doc/howto/logging-cookbook.rst:1458 msgid "A more elaborate multiprocessing example" @@ -1231,15 +1153,15 @@ msgstr "Un ejemplo de multiprocesamiento más elaborado" #: ../Doc/howto/logging-cookbook.rst:1460 msgid "" -"The following working example shows how logging can be used with " -"multiprocessing using configuration files. The configurations are fairly " -"simple, but serve to illustrate how more complex ones could be implemented " -"in a real multiprocessing scenario." +"The following working example shows how logging can be used with multiprocessing " +"using configuration files. The configurations are fairly simple, but serve to " +"illustrate how more complex ones could be implemented in a real multiprocessing " +"scenario." msgstr "" "El siguiente ejemplo de trabajo muestra cómo logging se puede usar con " "multiprocesamiento usando archivos de configuración. Las configuraciones son " -"bastante simples, pero sirven para ilustrar cómo se podrían implementar las " -"más complejas en un escenario real de multiprocesamiento." +"bastante simples, pero sirven para ilustrar cómo se podrían implementar las más " +"complejas en un escenario real de multiprocesamiento." # En algunas lineas anteriores me pasa lo mismo. No sé muy bien qué significa y cómo traducir "listener process" y "worker processes". Separé en varias oraciones para que sea más fluida la lectura. #: ../Doc/howto/logging-cookbook.rst:1465 @@ -1247,32 +1169,29 @@ msgstr "" msgid "" "In the example, the main process spawns a listener process and some worker " "processes. Each of the main process, the listener and the workers have three " -"separate configurations (the workers all share the same configuration). We " -"can see logging in the main process, how the workers log to a QueueHandler " -"and how the listener implements a QueueListener and a more complex logging " -"configuration, and arranges to dispatch events received via the queue to the " -"handlers specified in the configuration. Note that these configurations are " -"purely illustrative, but you should be able to adapt this example to your " -"own scenario." -msgstr "" -"En el ejemplo, el proceso principal genera un proceso de escucha y algunos " -"procesos de trabajo. Cada uno de los procesos principales, el oyente y los " -"de trabajo tienen tres configuraciones separadas (todos los de trabajo " -"comparten la misma configuración). Podemos ver el registro en el proceso " -"principal, cómo los de trabajo inician sesión en un *QueueHandler* y cómo el " -"oyente implementa un *QueueListener*. Este último con una configuración de " -"registro más compleja, organiza el envío de eventos recibidos a través de la " -"cola a los gestores especificados en la configuración. Tenga en cuenta que " -"estas configuraciones son puramente ilustrativas, pero usted debe ser capaz " -"de adaptar este ejemplo a su propio escenario." +"separate configurations (the workers all share the same configuration). We can see " +"logging in the main process, how the workers log to a QueueHandler and how the " +"listener implements a QueueListener and a more complex logging configuration, and " +"arranges to dispatch events received via the queue to the handlers specified in the " +"configuration. Note that these configurations are purely illustrative, but you " +"should be able to adapt this example to your own scenario." +msgstr "" +"En el ejemplo, el proceso principal genera un proceso de escucha y algunos procesos " +"de trabajo. Cada uno de los procesos principales, el oyente y los de trabajo tienen " +"tres configuraciones separadas (todos los de trabajo comparten la misma " +"configuración). Podemos ver el registro en el proceso principal, cómo los de trabajo " +"inician sesión en un *QueueHandler* y cómo el oyente implementa un *QueueListener*. " +"Este último con una configuración de registro más compleja, organiza el envío de " +"eventos recibidos a través de la cola a los gestores especificados en la " +"configuración. Tenga en cuenta que estas configuraciones son puramente ilustrativas, " +"pero usted debe ser capaz de adaptar este ejemplo a su propio escenario." #: ../Doc/howto/logging-cookbook.rst:1475 msgid "" -"Here's the script - the docstrings and the comments hopefully explain how it " -"works::" +"Here's the script - the docstrings and the comments hopefully explain how it works::" msgstr "" -"Aquí está el script, el docstrings y los comentarios, esperemos, expliquen " -"cómo funciona::" +"Aquí está el script, el docstrings y los comentarios, esperemos, expliquen cómo " +"funciona::" #: ../Doc/howto/logging-cookbook.rst:1687 msgid "Inserting a BOM into messages sent to a SysLogHandler" @@ -1280,97 +1199,91 @@ msgstr "Insertar BOM en mensajes enviados a SysLogHandler" #: ../Doc/howto/logging-cookbook.rst:1689 msgid "" -":rfc:`5424` requires that a Unicode message be sent to a syslog daemon as a " -"set of bytes which have the following structure: an optional pure-ASCII " -"component, followed by a UTF-8 Byte Order Mark (BOM), followed by Unicode " -"encoded using UTF-8. (See the :rfc:`relevant section of the specification " -"<5424#section-6>`.)" +":rfc:`5424` requires that a Unicode message be sent to a syslog daemon as a set of " +"bytes which have the following structure: an optional pure-ASCII component, followed " +"by a UTF-8 Byte Order Mark (BOM), followed by Unicode encoded using UTF-8. (See the :" +"rfc:`relevant section of the specification <5424#section-6>`.)" msgstr "" -":rfc:`5424` requiere que se envíe un mensaje Unicode a un demonio syslog " -"como un conjunto de bytes que tienen la siguiente estructura: un componente " -"opcional puro-ASCII, seguido de una Marca de Orden de Bytes UTF-8 (*BOM* por " -"sus siglas en inglés), seguida de codificado en Unicode usando UTF-8. " -"(Consulte la :rfc:`sección relevante de la especificación <5424 # " -"section-6>`.)" +":rfc:`5424` requiere que se envíe un mensaje Unicode a un demonio syslog como un " +"conjunto de bytes que tienen la siguiente estructura: un componente opcional puro-" +"ASCII, seguido de una Marca de Orden de Bytes UTF-8 (*BOM* por sus siglas en " +"inglés), seguida de codificado en Unicode usando UTF-8. (Consulte la :rfc:`sección " +"relevante de la especificación <5424 # section-6>`.)" #: ../Doc/howto/logging-cookbook.rst:1695 msgid "" -"In Python 3.1, code was added to :class:`~logging.handlers.SysLogHandler` to " -"insert a BOM into the message, but unfortunately, it was implemented " -"incorrectly, with the BOM appearing at the beginning of the message and " -"hence not allowing any pure-ASCII component to appear before it." +"In Python 3.1, code was added to :class:`~logging.handlers.SysLogHandler` to insert " +"a BOM into the message, but unfortunately, it was implemented incorrectly, with the " +"BOM appearing at the beginning of the message and hence not allowing any pure-ASCII " +"component to appear before it." msgstr "" -"En Python 3.1, se agregó código a :class:`~logging.handlers.SysLogHandler` " -"para insertar BOM en el mensaje, pero desafortunadamente, se implementó " -"incorrectamente, BOM aparece al principio del mensaje y, por lo tanto, no " -"permite ningún componente ASCII puro para que aparezca antes." +"En Python 3.1, se agregó código a :class:`~logging.handlers.SysLogHandler` para " +"insertar BOM en el mensaje, pero desafortunadamente, se implementó incorrectamente, " +"BOM aparece al principio del mensaje y, por lo tanto, no permite ningún componente " +"ASCII puro para que aparezca antes." #: ../Doc/howto/logging-cookbook.rst:1701 msgid "" -"As this behaviour is broken, the incorrect BOM insertion code is being " -"removed from Python 3.2.4 and later. However, it is not being replaced, and " -"if you want to produce :rfc:`5424`-compliant messages which include a BOM, " -"an optional pure-ASCII sequence before it and arbitrary Unicode after it, " -"encoded using UTF-8, then you need to do the following:" +"As this behaviour is broken, the incorrect BOM insertion code is being removed from " +"Python 3.2.4 and later. However, it is not being replaced, and if you want to " +"produce :rfc:`5424`-compliant messages which include a BOM, an optional pure-ASCII " +"sequence before it and arbitrary Unicode after it, encoded using UTF-8, then you " +"need to do the following:" msgstr "" -"Como este comportamiento no funciona, el código de inserción BOM incorrecto " -"se elimina de Python 3.2.4 y versiones posteriores. Sin embargo, no se está " -"reemplazando, y si desea producir mensajes compatibles con :rfc:`5424` que " -"incluyan BOM, una secuencia opcional de ASCII puro antes y Unicode " -"arbitrario después, codificados usando UTF-8; entonces necesita hacer lo " -"siguiente:" +"Como este comportamiento no funciona, el código de inserción BOM incorrecto se " +"elimina de Python 3.2.4 y versiones posteriores. Sin embargo, no se está " +"reemplazando, y si desea producir mensajes compatibles con :rfc:`5424` que incluyan " +"BOM, una secuencia opcional de ASCII puro antes y Unicode arbitrario después, " +"codificados usando UTF-8; entonces necesita hacer lo siguiente:" #: ../Doc/howto/logging-cookbook.rst:1707 msgid "" -"Attach a :class:`~logging.Formatter` instance to your :class:`~logging." -"handlers.SysLogHandler` instance, with a format string such as::" +"Attach a :class:`~logging.Formatter` instance to your :class:`~logging.handlers." +"SysLogHandler` instance, with a format string such as::" msgstr "" -"Adjunte una instancia de :class:`~logging.Formatter` a su instancia :class:" -"`~logging.handlers.SysLogHandler`, con una cadena de caracteres de formato " -"como::" +"Adjunte una instancia de :class:`~logging.Formatter` a su instancia :class:`~logging." +"handlers.SysLogHandler`, con una cadena de caracteres de formato como::" #: ../Doc/howto/logging-cookbook.rst:1713 msgid "" -"The Unicode code point U+FEFF, when encoded using UTF-8, will be encoded as " -"a UTF-8 BOM -- the byte-string ``b'\\xef\\xbb\\xbf'``." +"The Unicode code point U+FEFF, when encoded using UTF-8, will be encoded as a UTF-8 " +"BOM -- the byte-string ``b'\\xef\\xbb\\xbf'``." msgstr "" -"El punto de código Unicode U+ FEFF, cuando se codifica usando UTF-8, se " -"codificará como una BOM UTF-8, la cadena de bytes ``b'\\xef\\xbb\\xbf'``." +"El punto de código Unicode U+ FEFF, cuando se codifica usando UTF-8, se codificará " +"como una BOM UTF-8, la cadena de bytes ``b'\\xef\\xbb\\xbf'``." #: ../Doc/howto/logging-cookbook.rst:1716 msgid "" -"Replace the ASCII section with whatever placeholders you like, but make sure " -"that the data that appears in there after substitution is always ASCII (that " -"way, it will remain unchanged after UTF-8 encoding)." +"Replace the ASCII section with whatever placeholders you like, but make sure that " +"the data that appears in there after substitution is always ASCII (that way, it will " +"remain unchanged after UTF-8 encoding)." msgstr "" -"Reemplace la sección ASCII con los marcadores de posición que desee, pero " -"asegúrese de que los datos que aparecen allí después de la sustitución sean " -"siempre ASCII (de esa manera, permanecerán sin cambios después de la " -"codificación UTF-8)." +"Reemplace la sección ASCII con los marcadores de posición que desee, pero asegúrese " +"de que los datos que aparecen allí después de la sustitución sean siempre ASCII (de " +"esa manera, permanecerán sin cambios después de la codificación UTF-8)." #: ../Doc/howto/logging-cookbook.rst:1720 msgid "" -"Replace the Unicode section with whatever placeholders you like; if the data " -"which appears there after substitution contains characters outside the ASCII " -"range, that's fine -- it will be encoded using UTF-8." +"Replace the Unicode section with whatever placeholders you like; if the data which " +"appears there after substitution contains characters outside the ASCII range, that's " +"fine -- it will be encoded using UTF-8." msgstr "" -"Reemplace la sección Unicode con los marcadores de posición que desee; si " -"los datos que aparecen allí después de la sustitución contienen caracteres " -"fuera del rango ASCII, está bien: se codificarán usando UTF-8." +"Reemplace la sección Unicode con los marcadores de posición que desee; si los datos " +"que aparecen allí después de la sustitución contienen caracteres fuera del rango " +"ASCII, está bien: se codificarán usando UTF-8." #: ../Doc/howto/logging-cookbook.rst:1724 msgid "" -"The formatted message *will* be encoded using UTF-8 encoding by " -"``SysLogHandler``. If you follow the above rules, you should be able to " -"produce :rfc:`5424`-compliant messages. If you don't, logging may not " -"complain, but your messages will not be RFC 5424-compliant, and your syslog " -"daemon may complain." +"The formatted message *will* be encoded using UTF-8 encoding by ``SysLogHandler``. " +"If you follow the above rules, you should be able to produce :rfc:`5424`-compliant " +"messages. If you don't, logging may not complain, but your messages will not be RFC " +"5424-compliant, and your syslog daemon may complain." msgstr "" "El mensaje formateado *se* codificará utilizando la codificación UTF-8 por " -"``SysLogHandler``. Si sigue las reglas anteriores, debería poder producir " -"mensajes compatibles con :rfc:`5424`. Si no lo hace, es posible que el " -"registro no se queje, pero sus mensajes no serán compatibles con RFC 5424 y " -"su demonio syslog puede quejarse." +"``SysLogHandler``. Si sigue las reglas anteriores, debería poder producir mensajes " +"compatibles con :rfc:`5424`. Si no lo hace, es posible que el registro no se queje, " +"pero sus mensajes no serán compatibles con RFC 5424 y su demonio syslog puede " +"quejarse." #: ../Doc/howto/logging-cookbook.rst:1731 msgid "Implementing structured logging" @@ -1380,44 +1293,42 @@ msgstr "Implementar logging estructurado" #: ../Doc/howto/logging-cookbook.rst:1733 #, fuzzy msgid "" -"Although most logging messages are intended for reading by humans, and thus " -"not readily machine-parseable, there might be circumstances where you want " -"to output messages in a structured format which *is* capable of being parsed " -"by a program (without needing complex regular expressions to parse the log " -"message). This is straightforward to achieve using the logging package. " -"There are a number of ways in which this could be achieved, but the " -"following is a simple approach which uses JSON to serialise the event in a " -"machine-parseable manner::" -msgstr "" -"Aunque la mayoría de los mensajes de logging están destinados a ser leídos " -"por humanos y, por lo tanto, no se pueden analizar fácilmente mediante una " -"máquina, puede haber circunstancias en las que desee generar mensajes en un " -"formato estructurado que *sea* capaz de ser analizado por un programa (sin " -"necesidad de expresiones regulares complejas para analizar el mensaje de " -"registro). Esto es sencillo de lograr utilizando el paquete logging. Hay " -"varias formas de lograr esto, pero el siguiente es un enfoque simple que usa " -"JSON para serializar el evento de una manera analizable por computadora:" +"Although most logging messages are intended for reading by humans, and thus not " +"readily machine-parseable, there might be circumstances where you want to output " +"messages in a structured format which *is* capable of being parsed by a program " +"(without needing complex regular expressions to parse the log message). This is " +"straightforward to achieve using the logging package. There are a number of ways in " +"which this could be achieved, but the following is a simple approach which uses JSON " +"to serialise the event in a machine-parseable manner::" +msgstr "" +"Aunque la mayoría de los mensajes de logging están destinados a ser leídos por " +"humanos y, por lo tanto, no se pueden analizar fácilmente mediante una máquina, " +"puede haber circunstancias en las que desee generar mensajes en un formato " +"estructurado que *sea* capaz de ser analizado por un programa (sin necesidad de " +"expresiones regulares complejas para analizar el mensaje de registro). Esto es " +"sencillo de lograr utilizando el paquete logging. Hay varias formas de lograr esto, " +"pero el siguiente es un enfoque simple que usa JSON para serializar el evento de una " +"manera analizable por computadora:" #: ../Doc/howto/logging-cookbook.rst:1757 msgid "If the above script is run, it prints:" msgstr "Si se ejecuta el script anterior, se imprime:" -#: ../Doc/howto/logging-cookbook.rst:1763 -#: ../Doc/howto/logging-cookbook.rst:1812 +#: ../Doc/howto/logging-cookbook.rst:1763 ../Doc/howto/logging-cookbook.rst:1812 msgid "" -"Note that the order of items might be different according to the version of " -"Python used." +"Note that the order of items might be different according to the version of Python " +"used." msgstr "" -"Tenga en cuenta que el orden de los elementos puede ser diferente según la " -"versión de Python utilizada." +"Tenga en cuenta que el orden de los elementos puede ser diferente según la versión " +"de Python utilizada." #: ../Doc/howto/logging-cookbook.rst:1766 msgid "" -"If you need more specialised processing, you can use a custom JSON encoder, " -"as in the following complete example::" +"If you need more specialised processing, you can use a custom JSON encoder, as in " +"the following complete example::" msgstr "" -"Si necesita un procesamiento más especializado, puede utilizar un " -"codificador JSON personalizado, como en el siguiente ejemplo completo::" +"Si necesita un procesamiento más especializado, puede utilizar un codificador JSON " +"personalizado, como en el siguiente ejemplo completo::" #: ../Doc/howto/logging-cookbook.rst:1806 msgid "When the above script is run, it prints:" @@ -1429,66 +1340,63 @@ msgstr "Personalización de gestores con :func:`dictConfig`" #: ../Doc/howto/logging-cookbook.rst:1823 msgid "" -"There are times when you want to customize logging handlers in particular " -"ways, and if you use :func:`dictConfig` you may be able to do this without " -"subclassing. As an example, consider that you may want to set the ownership " -"of a log file. On POSIX, this is easily done using :func:`shutil.chown`, but " -"the file handlers in the stdlib don't offer built-in support. You can " -"customize handler creation using a plain function such as::" -msgstr "" -"Hay ocasiones en las que desea personalizar los gestores de logging de " -"formas particulares, y si usa :func:`dictConfig` puede hacerlo sin " -"subclases. Como ejemplo, considere que es posible que desee establecer la " -"propiedad de un archivo de registro. En POSIX, esto se hace fácilmente " -"usando :func:`shutil.chown`, pero los gestores de archivos en stdlib no " -"ofrecen soporte integrado. Puede personalizar la creación de gestores usando " -"una función simple como::" +"There are times when you want to customize logging handlers in particular ways, and " +"if you use :func:`dictConfig` you may be able to do this without subclassing. As an " +"example, consider that you may want to set the ownership of a log file. On POSIX, " +"this is easily done using :func:`shutil.chown`, but the file handlers in the stdlib " +"don't offer built-in support. You can customize handler creation using a plain " +"function such as::" +msgstr "" +"Hay ocasiones en las que desea personalizar los gestores de logging de formas " +"particulares, y si usa :func:`dictConfig` puede hacerlo sin subclases. Como ejemplo, " +"considere que es posible que desee establecer la propiedad de un archivo de " +"registro. En POSIX, esto se hace fácilmente usando :func:`shutil.chown`, pero los " +"gestores de archivos en stdlib no ofrecen soporte integrado. Puede personalizar la " +"creación de gestores usando una función simple como::" #: ../Doc/howto/logging-cookbook.rst:1837 msgid "" -"You can then specify, in a logging configuration passed to :func:" -"`dictConfig`, that a logging handler be created by calling this function::" +"You can then specify, in a logging configuration passed to :func:`dictConfig`, that " +"a logging handler be created by calling this function::" msgstr "" "Luego puede especificar, en una configuración de logging pasada a :func:" "`dictConfig`, que se cree un gestor de logging llamando a esta función::" #: ../Doc/howto/logging-cookbook.rst:1870 msgid "" -"In this example I am setting the ownership using the ``pulse`` user and " -"group, just for the purposes of illustration. Putting it together into a " -"working script, ``chowntest.py``::" +"In this example I am setting the ownership using the ``pulse`` user and group, just " +"for the purposes of illustration. Putting it together into a working script, " +"``chowntest.py``::" msgstr "" "En este ejemplo, se establece la propiedad utilizando el usuario y el grupo " -"``pulse``, solo con fines ilustrativos. Poniéndolo junto en un script de " -"trabajo, ``chowntest.py``::" +"``pulse``, solo con fines ilustrativos. Poniéndolo junto en un script de trabajo, " +"``chowntest.py``::" #: ../Doc/howto/logging-cookbook.rst:1917 msgid "To run this, you will probably need to run as ``root``:" -msgstr "" -"Para ejecutar esto, probablemente se necesite ejecutarlo como ``root``:" +msgstr "Para ejecutar esto, probablemente se necesite ejecutarlo como ``root``:" #: ../Doc/howto/logging-cookbook.rst:1927 msgid "" -"Note that this example uses Python 3.3 because that's where :func:`shutil." -"chown` makes an appearance. This approach should work with any Python " -"version that supports :func:`dictConfig` - namely, Python 2.7, 3.2 or later. " -"With pre-3.3 versions, you would need to implement the actual ownership " -"change using e.g. :func:`os.chown`." +"Note that this example uses Python 3.3 because that's where :func:`shutil.chown` " +"makes an appearance. This approach should work with any Python version that " +"supports :func:`dictConfig` - namely, Python 2.7, 3.2 or later. With pre-3.3 " +"versions, you would need to implement the actual ownership change using e.g. :func:" +"`os.chown`." msgstr "" -"Tenga en cuenta que este ejemplo usa Python 3.3 porque ahí es donde :func:" -"`shutil.chown` aparece. Este enfoque debería funcionar con cualquier versión " -"de Python que admita :func:`dictConfig`, es decir, Python 2.7, 3.2 o " -"posterior. Con las versiones anteriores a 3.3, necesitaría implementar el " -"cambio de propiedad real usando, por ejemplo, :func:`os.chown`." +"Tenga en cuenta que este ejemplo usa Python 3.3 porque ahí es donde :func:`shutil." +"chown` aparece. Este enfoque debería funcionar con cualquier versión de Python que " +"admita :func:`dictConfig`, es decir, Python 2.7, 3.2 o posterior. Con las versiones " +"anteriores a 3.3, necesitaría implementar el cambio de propiedad real usando, por " +"ejemplo, :func:`os.chown`." #: ../Doc/howto/logging-cookbook.rst:1933 msgid "" -"In practice, the handler-creating function may be in a utility module " -"somewhere in your project. Instead of the line in the configuration::" +"In practice, the handler-creating function may be in a utility module somewhere in " +"your project. Instead of the line in the configuration::" msgstr "" -"En la práctica, la función de creación de gestores puede estar en un módulo " -"de utilidad en algún lugar de su proyecto. En lugar de la línea en la " -"configuración::" +"En la práctica, la función de creación de gestores puede estar en un módulo de " +"utilidad en algún lugar de su proyecto. En lugar de la línea en la configuración::" #: ../Doc/howto/logging-cookbook.rst:1938 msgid "you could use e.g.::" @@ -1496,36 +1404,35 @@ msgstr "podrías usar, por ejemplo,::" #: ../Doc/howto/logging-cookbook.rst:1942 msgid "" -"where ``project.util`` can be replaced with the actual name of the package " -"where the function resides. In the above working script, using ``'ext://" -"__main__.owned_file_handler'`` should work. Here, the actual callable is " -"resolved by :func:`dictConfig` from the ``ext://`` specification." +"where ``project.util`` can be replaced with the actual name of the package where the " +"function resides. In the above working script, using ``'ext://__main__." +"owned_file_handler'`` should work. Here, the actual callable is resolved by :func:" +"`dictConfig` from the ``ext://`` specification." msgstr "" -"donde ``project.util`` se puede reemplazar con el nombre real del paquete " -"donde reside la función. En el script de trabajo anterior, el uso de " -"``'ext://__main__.owned_file_handler'`` debería funcionar. Aquí, el " -"invocable real se resuelve mediante :func:`dictConfig` de la especificación " -"``ext://``." +"donde ``project.util`` se puede reemplazar con el nombre real del paquete donde " +"reside la función. En el script de trabajo anterior, el uso de ``'ext://__main__." +"owned_file_handler'`` debería funcionar. Aquí, el invocable real se resuelve " +"mediante :func:`dictConfig` de la especificación ``ext://``." #: ../Doc/howto/logging-cookbook.rst:1947 msgid "" -"This example hopefully also points the way to how you could implement other " -"types of file change - e.g. setting specific POSIX permission bits - in the " -"same way, using :func:`os.chmod`." +"This example hopefully also points the way to how you could implement other types of " +"file change - e.g. setting specific POSIX permission bits - in the same way, using :" +"func:`os.chmod`." msgstr "" -"Por furtuna, este ejemplo también indica el camino hacia cómo podría " -"implementar otros tipos de cambio de archivo, por ejemplo, configurando de " -"la misma manera bits de permisos POSIX específicos, usando :func:`os.chmod`." +"Por furtuna, este ejemplo también indica el camino hacia cómo podría implementar " +"otros tipos de cambio de archivo, por ejemplo, configurando de la misma manera bits " +"de permisos POSIX específicos, usando :func:`os.chmod`." #: ../Doc/howto/logging-cookbook.rst:1951 msgid "" -"Of course, the approach could also be extended to types of handler other " -"than a :class:`~logging.FileHandler` - for example, one of the rotating file " -"handlers, or a different type of handler altogether." +"Of course, the approach could also be extended to types of handler other than a :" +"class:`~logging.FileHandler` - for example, one of the rotating file handlers, or a " +"different type of handler altogether." msgstr "" -"Por supuesto, el enfoque también podría extenderse a tipos de gestores " -"distintos a :class:`~logging.FileHandler` - por ejemplo, uno de los gestores " -"de archivos rotativos, o un tipo diferente por completo." +"Por supuesto, el enfoque también podría extenderse a tipos de gestores distintos a :" +"class:`~logging.FileHandler` - por ejemplo, uno de los gestores de archivos " +"rotativos, o un tipo diferente por completo." #: ../Doc/howto/logging-cookbook.rst:1961 msgid "Using particular formatting styles throughout your application" @@ -1533,75 +1440,72 @@ msgstr "Usar estilos de formato particulares en toda su aplicación" #: ../Doc/howto/logging-cookbook.rst:1963 msgid "" -"In Python 3.2, the :class:`~logging.Formatter` gained a ``style`` keyword " -"parameter which, while defaulting to ``%`` for backward compatibility, " -"allowed the specification of ``{`` or ``$`` to support the formatting " -"approaches supported by :meth:`str.format` and :class:`string.Template`. " -"Note that this governs the formatting of logging messages for final output " -"to logs, and is completely orthogonal to how an individual logging message " -"is constructed." -msgstr "" -"En Python 3.2, :class:`~logging.Formatter` obtuvo un parámetro de palabra " -"clave ``estilo`` que, aunque por defecto era ``%`` para compatibilidad con " -"versiones anteriores, permitía la especificación de ``{`` o ``$`` para " -"permitir los enfoques de formato admitidos por :meth:`str.format` y :class:" -"`string.Template`. Tenga en cuenta que esto rige el formato de los mensajes " -"de logging para la salida final a los registros y es completamente ortogonal " -"a cómo se construye un mensaje de registro individual." +"In Python 3.2, the :class:`~logging.Formatter` gained a ``style`` keyword parameter " +"which, while defaulting to ``%`` for backward compatibility, allowed the " +"specification of ``{`` or ``$`` to support the formatting approaches supported by :" +"meth:`str.format` and :class:`string.Template`. Note that this governs the " +"formatting of logging messages for final output to logs, and is completely " +"orthogonal to how an individual logging message is constructed." +msgstr "" +"En Python 3.2, :class:`~logging.Formatter` obtuvo un parámetro de palabra clave " +"``estilo`` que, aunque por defecto era ``%`` para compatibilidad con versiones " +"anteriores, permitía la especificación de ``{`` o ``$`` para permitir los enfoques " +"de formato admitidos por :meth:`str.format` y :class:`string.Template`. Tenga en " +"cuenta que esto rige el formato de los mensajes de logging para la salida final a " +"los registros y es completamente ortogonal a cómo se construye un mensaje de " +"registro individual." #: ../Doc/howto/logging-cookbook.rst:1970 #, python-format msgid "" "Logging calls (:meth:`~Logger.debug`, :meth:`~Logger.info` etc.) only take " -"positional parameters for the actual logging message itself, with keyword " -"parameters used only for determining options for how to handle the logging " -"call (e.g. the ``exc_info`` keyword parameter to indicate that traceback " -"information should be logged, or the ``extra`` keyword parameter to indicate " -"additional contextual information to be added to the log). So you cannot " -"directly make logging calls using :meth:`str.format` or :class:`string." -"Template` syntax, because internally the logging package uses %-formatting " -"to merge the format string and the variable arguments. There would no " -"changing this while preserving backward compatibility, since all logging " -"calls which are out there in existing code will be using %-format strings." -msgstr "" -"Las llamadas de logging (:meth:`~Logger.debug`, :meth:`~Logger.info`, etc.) " -"solo toman parámetros posicionales para el mensaje logging real en sí, con " -"parámetros de palabras clave que se utilizan solo para determinar las " -"opciones sobre cómo manejar la llamada de logging (por ejemplo, el parámetro " -"de palabra clave ``exc_info`` para indicar que la información de rastreo " -"debe registrarse, o el parámetro de palabra clave ``extra`` para indicar " -"información contextual adicional que se agregará al registro). Por lo tanto, " -"no puede realizar llamadas de logging directamente usando la sintaxis :meth:" -"`str.format` o :class:`string.Template`, porque internamente el paquete " -"logging usa formato % para fusionar la cadena de formato y los argumentos de " -"las variables. No se cambiaría esto mientras se conserve la compatibilidad " -"con versiones anteriores, ya que todas las llamadas de registro que están en " -"el código existente utilizarán cadenas de caracteres formato %." +"positional parameters for the actual logging message itself, with keyword parameters " +"used only for determining options for how to handle the logging call (e.g. the " +"``exc_info`` keyword parameter to indicate that traceback information should be " +"logged, or the ``extra`` keyword parameter to indicate additional contextual " +"information to be added to the log). So you cannot directly make logging calls " +"using :meth:`str.format` or :class:`string.Template` syntax, because internally the " +"logging package uses %-formatting to merge the format string and the variable " +"arguments. There would no changing this while preserving backward compatibility, " +"since all logging calls which are out there in existing code will be using %-format " +"strings." +msgstr "" +"Las llamadas de logging (:meth:`~Logger.debug`, :meth:`~Logger.info`, etc.) solo " +"toman parámetros posicionales para el mensaje logging real en sí, con parámetros de " +"palabras clave que se utilizan solo para determinar las opciones sobre cómo manejar " +"la llamada de logging (por ejemplo, el parámetro de palabra clave ``exc_info`` para " +"indicar que la información de rastreo debe registrarse, o el parámetro de palabra " +"clave ``extra`` para indicar información contextual adicional que se agregará al " +"registro). Por lo tanto, no puede realizar llamadas de logging directamente usando " +"la sintaxis :meth:`str.format` o :class:`string.Template`, porque internamente el " +"paquete logging usa formato % para fusionar la cadena de formato y los argumentos de " +"las variables. No se cambiaría esto mientras se conserve la compatibilidad con " +"versiones anteriores, ya que todas las llamadas de registro que están en el código " +"existente utilizarán cadenas de caracteres formato %." #: ../Doc/howto/logging-cookbook.rst:1982 #, python-format msgid "" -"There have been suggestions to associate format styles with specific " -"loggers, but that approach also runs into backward compatibility problems " -"because any existing code could be using a given logger name and using " -"%-formatting." +"There have been suggestions to associate format styles with specific loggers, but " +"that approach also runs into backward compatibility problems because any existing " +"code could be using a given logger name and using %-formatting." msgstr "" -"Ha habido sugerencias para asociar estilos de formato con *loggers* " -"específicos, pero ese enfoque también tiene problemas de compatibilidad con " -"versiones anteriores porque cualquier código existente podría estar usando " -"un nombre de *logger* dado y usando formato %." +"Ha habido sugerencias para asociar estilos de formato con *loggers* específicos, " +"pero ese enfoque también tiene problemas de compatibilidad con versiones anteriores " +"porque cualquier código existente podría estar usando un nombre de *logger* dado y " +"usando formato %." #: ../Doc/howto/logging-cookbook.rst:1986 msgid "" -"For logging to work interoperably between any third-party libraries and your " -"code, decisions about formatting need to be made at the level of the " -"individual logging call. This opens up a couple of ways in which alternative " -"formatting styles can be accommodated." +"For logging to work interoperably between any third-party libraries and your code, " +"decisions about formatting need to be made at the level of the individual logging " +"call. This opens up a couple of ways in which alternative formatting styles can be " +"accommodated." msgstr "" -"Para que logging funcione de manera interoperable entre cualquier biblioteca " -"de terceros y su código, las decisiones sobre el formato deben tomarse a " -"nivel de la llamada de logging individual. Esto abre un par de formas en las " -"que se pueden acomodar estilos de formato alternativos." +"Para que logging funcione de manera interoperable entre cualquier biblioteca de " +"terceros y su código, las decisiones sobre el formato deben tomarse a nivel de la " +"llamada de logging individual. Esto abre un par de formas en las que se pueden " +"acomodar estilos de formato alternativos." #: ../Doc/howto/logging-cookbook.rst:1993 msgid "Using LogRecord factories" @@ -1610,38 +1514,36 @@ msgstr "Uso de fábricas de LogRecord" #: ../Doc/howto/logging-cookbook.rst:1995 #, python-format msgid "" -"In Python 3.2, along with the :class:`~logging.Formatter` changes mentioned " -"above, the logging package gained the ability to allow users to set their " -"own :class:`LogRecord` subclasses, using the :func:`setLogRecordFactory` " -"function. You can use this to set your own subclass of :class:`LogRecord`, " -"which does the Right Thing by overriding the :meth:`~LogRecord.getMessage` " -"method. The base class implementation of this method is where the ``msg % " -"args`` formatting happens, and where you can substitute your alternate " -"formatting; however, you should be careful to support all formatting styles " -"and allow %-formatting as the default, to ensure interoperability with other " -"code. Care should also be taken to call ``str(self.msg)``, just as the base " -"implementation does." -msgstr "" -"En Python 3.2, junto con los cambios de :class:`~logging.Formatter` " -"mencionados anteriormente, el paquete logging ganó la capacidad de permitir " -"a los usuarios establecer sus propias subclases :class:`LogRecord`, usando " -"la función :func:`setLogRecordFactory`. Puede usar esto para configurar su " -"propia subclase de :class:`LogRecord`, que hace lo correcto al anular el " -"método :meth:`~LogRecord.getMessage`. La implementación de la clase base de " -"este método es donde ocurre el formato ``msg % args`` y donde puede " -"sustituir su formato alternativo; sin embargo, debe tener cuidado de admitir " -"todos los estilos de formato y permitir formato % como predeterminado, para " -"garantizar la interoperabilidad con otro código. También se debe tener " -"cuidado de llamar a ``str(self.msg)``, tal como lo hace la implementación " +"In Python 3.2, along with the :class:`~logging.Formatter` changes mentioned above, " +"the logging package gained the ability to allow users to set their own :class:" +"`LogRecord` subclasses, using the :func:`setLogRecordFactory` function. You can use " +"this to set your own subclass of :class:`LogRecord`, which does the Right Thing by " +"overriding the :meth:`~LogRecord.getMessage` method. The base class implementation " +"of this method is where the ``msg % args`` formatting happens, and where you can " +"substitute your alternate formatting; however, you should be careful to support all " +"formatting styles and allow %-formatting as the default, to ensure interoperability " +"with other code. Care should also be taken to call ``str(self.msg)``, just as the " +"base implementation does." +msgstr "" +"En Python 3.2, junto con los cambios de :class:`~logging.Formatter` mencionados " +"anteriormente, el paquete logging ganó la capacidad de permitir a los usuarios " +"establecer sus propias subclases :class:`LogRecord`, usando la función :func:" +"`setLogRecordFactory`. Puede usar esto para configurar su propia subclase de :class:" +"`LogRecord`, que hace lo correcto al anular el método :meth:`~LogRecord.getMessage`. " +"La implementación de la clase base de este método es donde ocurre el formato ``msg % " +"args`` y donde puede sustituir su formato alternativo; sin embargo, debe tener " +"cuidado de admitir todos los estilos de formato y permitir formato % como " +"predeterminado, para garantizar la interoperabilidad con otro código. También se " +"debe tener cuidado de llamar a ``str(self.msg)``, tal como lo hace la implementación " "base." #: ../Doc/howto/logging-cookbook.rst:2006 msgid "" -"Refer to the reference documentation on :func:`setLogRecordFactory` and :" -"class:`LogRecord` for more information." +"Refer to the reference documentation on :func:`setLogRecordFactory` and :class:" +"`LogRecord` for more information." msgstr "" -"Consulte la documentación de referencia en :func:`setLogRecordFactory` y :" -"class:`LogRecord` para obtener más información." +"Consulte la documentación de referencia en :func:`setLogRecordFactory` y :class:" +"`LogRecord` para obtener más información." #: ../Doc/howto/logging-cookbook.rst:2011 msgid "Using custom message objects" @@ -1649,72 +1551,68 @@ msgstr "Usar objetos de mensaje personalizados" #: ../Doc/howto/logging-cookbook.rst:2013 msgid "" -"There is another, perhaps simpler way that you can use {}- and $- formatting " -"to construct your individual log messages. You may recall (from :ref:" -"`arbitrary-object-messages`) that when logging you can use an arbitrary " -"object as a message format string, and that the logging package will call :" -"func:`str` on that object to get the actual format string. Consider the " -"following two classes::" -msgstr "" -"Existe otra forma, quizás más sencilla, de usar el formato {} - y $ - para " -"construir sus mensajes de registro individuales. Al iniciar sesión, recuerde " -"que puede usar cualquier objeto como una cadena de caracteres de formato de " -"mensaje (:ref:`arbitrary-object-messages`) que al iniciar sesión puede usar " -"un objeto arbitrario como una cadena de formato de mensaje, y que el paquete " -"de registro llamará :func:`str` en ese objeto para obtener el cadena de " -"formato real. Considere las siguientes dos clases:" +"There is another, perhaps simpler way that you can use {}- and $- formatting to " +"construct your individual log messages. You may recall (from :ref:`arbitrary-object-" +"messages`) that when logging you can use an arbitrary object as a message format " +"string, and that the logging package will call :func:`str` on that object to get the " +"actual format string. Consider the following two classes::" +msgstr "" +"Existe otra forma, quizás más sencilla, de usar el formato {} - y $ - para construir " +"sus mensajes de registro individuales. Al iniciar sesión, recuerde que puede usar " +"cualquier objeto como una cadena de caracteres de formato de mensaje (:ref:" +"`arbitrary-object-messages`) que al iniciar sesión puede usar un objeto arbitrario " +"como una cadena de formato de mensaje, y que el paquete de registro llamará :func:" +"`str` en ese objeto para obtener el cadena de formato real. Considere las siguientes " +"dos clases:" #: ../Doc/howto/logging-cookbook.rst:2038 #, python-format msgid "" "Either of these can be used in place of a format string, to allow {}- or $-" -"formatting to be used to build the actual \"message\" part which appears in " -"the formatted log output in place of “%(message)s” or “{message}” or " -"“$message”. If you find it a little unwieldy to use the class names whenever " -"you want to log something, you can make it more palatable if you use an " -"alias such as ``M`` or ``_`` for the message (or perhaps ``__``, if you are " -"using ``_`` for localization)." -msgstr "" -"Cualquiera de estos puede usarse en lugar de una cadena de formato, para " -"permitir que se use el formato {} - o $ - para construir la parte del " -"\"mensaje\" real que aparece en la salida del registro formateado en lugar " -"de “%(message)s” or “{message}” or “$message”. Si le resulta un poco difícil " -"de manejar usar los nombres de las clases cada vez que desea registrar algo, " -"puede hacerlo más tolerable si usa un alias como ``M`` o ``_`` para el " -"mensaje (o quizás ``__``, si está utilizando``_`` para localización)." +"formatting to be used to build the actual \"message\" part which appears in the " +"formatted log output in place of “%(message)s” or “{message}” or “$message”. If you " +"find it a little unwieldy to use the class names whenever you want to log something, " +"you can make it more palatable if you use an alias such as ``M`` or ``_`` for the " +"message (or perhaps ``__``, if you are using ``_`` for localization)." +msgstr "" +"Cualquiera de estos puede usarse en lugar de una cadena de formato, para permitir " +"que se use el formato {} - o $ - para construir la parte del \"mensaje\" real que " +"aparece en la salida del registro formateado en lugar de “%(message)s” or " +"“{message}” or “$message”. Si le resulta un poco difícil de manejar usar los nombres " +"de las clases cada vez que desea registrar algo, puede hacerlo más tolerable si usa " +"un alias como ``M`` o ``_`` para el mensaje (o quizás ``__``, si está " +"utilizando``_`` para localización)." #: ../Doc/howto/logging-cookbook.rst:2046 msgid "" -"Examples of this approach are given below. Firstly, formatting with :meth:" -"`str.format`::" +"Examples of this approach are given below. Firstly, formatting with :meth:`str." +"format`::" msgstr "" -"A continuación se dan ejemplos de este enfoque. En primer lugar, formatear " -"con :meth:`str.format`::" +"A continuación se dan ejemplos de este enfoque. En primer lugar, formatear con :meth:" +"`str.format`::" #: ../Doc/howto/logging-cookbook.rst:2060 msgid "Secondly, formatting with :class:`string.Template`::" -msgstr "En segundo lugar, formatear con :class:`string.Template`" +msgstr "En segundo lugar, formatear con :class:`string.Template`::" #: ../Doc/howto/logging-cookbook.rst:2067 msgid "" -"One thing to note is that you pay no significant performance penalty with " -"this approach: the actual formatting happens not when you make the logging " -"call, but when (and if) the logged message is actually about to be output to " -"a log by a handler. So the only slightly unusual thing which might trip you " -"up is that the parentheses go around the format string and the arguments, " -"not just the format string. That’s because the __ notation is just syntax " -"sugar for a constructor call to one of the ``XXXMessage`` classes shown " -"above." -msgstr "" -"Una cosa a tener en cuenta es que no paga ninguna penalización significativa " -"del rendimiento con este enfoque: el formato real no se produce cuando se " -"realiza la llamada logging, sino cuando (y si) el mensaje registrado está " -"realmente a punto de ser salida a un registro por un gestor. Así que lo " -"único un poco inusual con lo que podría tropezar es que los paréntesis van " -"alrededor de la cadena de caracteres de formato y los argumentos, no sólo la " -"cadena de formato. Esto se debe a que la notación __ es solo azúcar " -"sintáctico para una llamada de constructor a una de las clases " -"``XXXMessage`` mostradas anteriormente." +"One thing to note is that you pay no significant performance penalty with this " +"approach: the actual formatting happens not when you make the logging call, but when " +"(and if) the logged message is actually about to be output to a log by a handler. So " +"the only slightly unusual thing which might trip you up is that the parentheses go " +"around the format string and the arguments, not just the format string. That’s " +"because the __ notation is just syntax sugar for a constructor call to one of the " +"``XXXMessage`` classes shown above." +msgstr "" +"Una cosa a tener en cuenta es que no paga ninguna penalización significativa del " +"rendimiento con este enfoque: el formato real no se produce cuando se realiza la " +"llamada logging, sino cuando (y si) el mensaje registrado está realmente a punto de " +"ser salida a un registro por un gestor. Así que lo único un poco inusual con lo que " +"podría tropezar es que los paréntesis van alrededor de la cadena de caracteres de " +"formato y los argumentos, no sólo la cadena de formato. Esto se debe a que la " +"notación __ es solo azúcar sintáctico para una llamada de constructor a una de las " +"clases ``XXXMessage`` mostradas anteriormente." #: ../Doc/howto/logging-cookbook.rst:2081 msgid "Configuring filters with :func:`dictConfig`" @@ -1722,39 +1620,37 @@ msgstr "Configurar filtros con :func:`dictConfig`" #: ../Doc/howto/logging-cookbook.rst:2083 msgid "" -"You *can* configure filters using :func:`~logging.config.dictConfig`, though " -"it might not be obvious at first glance how to do it (hence this recipe). " -"Since :class:`~logging.Filter` is the only filter class included in the " -"standard library, and it is unlikely to cater to many requirements (it's " -"only there as a base class), you will typically need to define your own :" -"class:`~logging.Filter` subclass with an overridden :meth:`~logging.Filter." -"filter` method. To do this, specify the ``()`` key in the configuration " -"dictionary for the filter, specifying a callable which will be used to " -"create the filter (a class is the most obvious, but you can provide any " -"callable which returns a :class:`~logging.Filter` instance). Here is a " -"complete example::" +"You *can* configure filters using :func:`~logging.config.dictConfig`, though it " +"might not be obvious at first glance how to do it (hence this recipe). Since :class:" +"`~logging.Filter` is the only filter class included in the standard library, and it " +"is unlikely to cater to many requirements (it's only there as a base class), you " +"will typically need to define your own :class:`~logging.Filter` subclass with an " +"overridden :meth:`~logging.Filter.filter` method. To do this, specify the ``()`` key " +"in the configuration dictionary for the filter, specifying a callable which will be " +"used to create the filter (a class is the most obvious, but you can provide any " +"callable which returns a :class:`~logging.Filter` instance). Here is a complete " +"example::" msgstr "" -"*Puedes* configurar filtros usando :func:`~logging.config.dictConfig`, " -"aunque a primera vista es posible que no sea obvio cómo hacerlo (de ahí esta " -"receta). Dado que :class:`~logging.Filter` es la única clase de filtro " -"incluida en la biblioteca estándar, y es poco probable que satisfaga muchos " -"requisitos (solo está allí como clase base), normalmente necesitarás definir " -"tu propia subclase :class:`~logging.Filter` con un método :meth:`~logging." -"Filter.filter` sobreescrito. Para hacer esto, especifique la clave ``()`` en " -"el diccionario de configuración para el filtro, especificando un invocable " -"que se usará para crear el filtro (una clase es la más obvia, pero puede " -"proporcionar cualquier invocable que devuelva una instancia :class:`~logging." -"Filter`). Aquí hay un ejemplo completo:" +"*Puedes* configurar filtros usando :func:`~logging.config.dictConfig`, aunque a " +"primera vista es posible que no sea obvio cómo hacerlo (de ahí esta receta). Dado " +"que :class:`~logging.Filter` es la única clase de filtro incluida en la biblioteca " +"estándar, y es poco probable que satisfaga muchos requisitos (solo está allí como " +"clase base), normalmente necesitarás definir tu propia subclase :class:`~logging." +"Filter` con un método :meth:`~logging.Filter.filter` sobreescrito. Para hacer esto, " +"especifique la clave ``()`` en el diccionario de configuración para el filtro, " +"especificando un invocable que se usará para crear el filtro (una clase es la más " +"obvia, pero puede proporcionar cualquier invocable que devuelva una instancia :class:" +"`~logging.Filter`). Aquí hay un ejemplo completo:" #: ../Doc/howto/logging-cookbook.rst:2136 msgid "" "This example shows how you can pass configuration data to the callable which " -"constructs the instance, in the form of keyword parameters. When run, the " -"above script will print:" +"constructs the instance, in the form of keyword parameters. When run, the above " +"script will print:" msgstr "" -"Este ejemplo muestra cómo puede pasar datos de configuración al invocable " -"que construye la instancia, en forma de parámetros de palabras clave. Cuando " -"se ejecuta, se imprimirá el script anterior:" +"Este ejemplo muestra cómo puede pasar datos de configuración al invocable que " +"construye la instancia, en forma de parámetros de palabras clave. Cuando se ejecuta, " +"se imprimirá el script anterior:" #: ../Doc/howto/logging-cookbook.rst:2144 msgid "which shows that the filter is working as configured." @@ -1766,33 +1662,31 @@ msgstr "Un par de puntos adicionales a tener en cuenta:" #: ../Doc/howto/logging-cookbook.rst:2148 msgid "" -"If you can't refer to the callable directly in the configuration (e.g. if it " -"lives in a different module, and you can't import it directly where the " -"configuration dictionary is), you can use the form ``ext://...`` as " -"described in :ref:`logging-config-dict-externalobj`. For example, you could " -"have used the text ``'ext://__main__.MyFilter'`` instead of ``MyFilter`` in " -"the above example." +"If you can't refer to the callable directly in the configuration (e.g. if it lives " +"in a different module, and you can't import it directly where the configuration " +"dictionary is), you can use the form ``ext://...`` as described in :ref:`logging-" +"config-dict-externalobj`. For example, you could have used the text ``'ext://" +"__main__.MyFilter'`` instead of ``MyFilter`` in the above example." msgstr "" -"Si no puede hacer referencia al invocable directamente en la configuración " -"(por ejemplo, si vive en un módulo diferente y no puede importarlo " -"directamente donde está el diccionario de configuración), puede usar el " -"formulario ``ext://...`` como se describe en :ref:`logging-config-dict-" -"externalobj`. Por ejemplo, podría haber usado el texto ``'ext://__main__." -"MyFilter'`` en lugar de ``MyFilter`` en el ejemplo anterior." +"Si no puede hacer referencia al invocable directamente en la configuración (por " +"ejemplo, si vive en un módulo diferente y no puede importarlo directamente donde " +"está el diccionario de configuración), puede usar el formulario ``ext://...`` como " +"se describe en :ref:`logging-config-dict-externalobj`. Por ejemplo, podría haber " +"usado el texto ``'ext://__main__.MyFilter'`` en lugar de ``MyFilter`` en el ejemplo " +"anterior." #: ../Doc/howto/logging-cookbook.rst:2155 msgid "" -"As well as for filters, this technique can also be used to configure custom " -"handlers and formatters. See :ref:`logging-config-dict-userdef` for more " -"information on how logging supports using user-defined objects in its " -"configuration, and see the other cookbook recipe :ref:`custom-handlers` " -"above." +"As well as for filters, this technique can also be used to configure custom handlers " +"and formatters. See :ref:`logging-config-dict-userdef` for more information on how " +"logging supports using user-defined objects in its configuration, and see the other " +"cookbook recipe :ref:`custom-handlers` above." msgstr "" -"Además de los filtros, esta técnica también se puede utilizar para " -"configurar gestores y formateadores personalizados. Consultar :ref:`logging-" -"config-dict-userdef` para obtener más información sobre cómo logging admite " -"el uso de objetos definidos por el usuario en su configuración, y ver arriba " -"la otra receta :ref:`custom-handlers`." +"Además de los filtros, esta técnica también se puede utilizar para configurar " +"gestores y formateadores personalizados. Consultar :ref:`logging-config-dict-" +"userdef` para obtener más información sobre cómo logging admite el uso de objetos " +"definidos por el usuario en su configuración, y ver arriba la otra receta :ref:" +"`custom-handlers`." #: ../Doc/howto/logging-cookbook.rst:2164 msgid "Customized exception formatting" @@ -1800,16 +1694,15 @@ msgstr "Formato de excepción personalizado" #: ../Doc/howto/logging-cookbook.rst:2166 msgid "" -"There might be times when you want to do customized exception formatting - " -"for argument's sake, let's say you want exactly one line per logged event, " -"even when exception information is present. You can do this with a custom " -"formatter class, as shown in the following example::" +"There might be times when you want to do customized exception formatting - for " +"argument's sake, let's say you want exactly one line per logged event, even when " +"exception information is present. You can do this with a custom formatter class, as " +"shown in the following example::" msgstr "" -"Puede haber ocasiones en las que desee personalizar un formato de excepción; " -"por el bien del argumento, digamos que desea exactamente una línea por " -"evento registrado, incluso cuando la información de la excepción está " -"presente. Puede hacer esto con una clase de formateador personalizada, como " -"se muestra en el siguiente ejemplo::" +"Puede haber ocasiones en las que desee personalizar un formato de excepción; por el " +"bien del argumento, digamos que desea exactamente una línea por evento registrado, " +"incluso cuando la información de la excepción está presente. Puede hacer esto con " +"una clase de formateador personalizada, como se muestra en el siguiente ejemplo::" #: ../Doc/howto/logging-cookbook.rst:2207 msgid "When run, this produces a file with exactly two lines:" @@ -1818,12 +1711,12 @@ msgstr "Cuando se ejecuta, esto produce un archivo con exactamente dos líneas:" #: ../Doc/howto/logging-cookbook.rst:2214 msgid "" "While the above treatment is simplistic, it points the way to how exception " -"information can be formatted to your liking. The :mod:`traceback` module may " -"be helpful for more specialized needs." +"information can be formatted to your liking. The :mod:`traceback` module may be " +"helpful for more specialized needs." msgstr "" -"Si bien el tratamiento anterior es simplista, señala el camino hacia cómo se " -"puede formatear la información de excepción a su gusto. El módulo :mod:" -"`traceback` puede resultar útil para necesidades más especializadas." +"Si bien el tratamiento anterior es simplista, señala el camino hacia cómo se puede " +"formatear la información de excepción a su gusto. El módulo :mod:`traceback` puede " +"resultar útil para necesidades más especializadas." #: ../Doc/howto/logging-cookbook.rst:2221 msgid "Speaking logging messages" @@ -1831,132 +1724,124 @@ msgstr "Mensajes de registro hablantes" #: ../Doc/howto/logging-cookbook.rst:2223 msgid "" -"There might be situations when it is desirable to have logging messages " -"rendered in an audible rather than a visible format. This is easy to do if " -"you have text-to-speech (TTS) functionality available in your system, even " -"if it doesn't have a Python binding. Most TTS systems have a command line " -"program you can run, and this can be invoked from a handler using :mod:" -"`subprocess`. It's assumed here that TTS command line programs won't expect " -"to interact with users or take a long time to complete, and that the " -"frequency of logged messages will be not so high as to swamp the user with " -"messages, and that it's acceptable to have the messages spoken one at a time " -"rather than concurrently, The example implementation below waits for one " -"message to be spoken before the next is processed, and this might cause " -"other handlers to be kept waiting. Here is a short example showing the " -"approach, which assumes that the ``espeak`` TTS package is available::" -msgstr "" -"Puede haber situaciones en las que sea deseable que los mensajes de registro " -"se presenten en un formato audible en lugar de visible. Esto es fácil de " -"hacer si tiene la funcionalidad de texto a voz (*TTS* por sus siglas en " -"inglés) disponible en su sistema, incluso si no tiene un *binding* Python. " -"La mayoría de los sistemas TTS tienen un programa de línea de comandos que " -"puede ejecutar, y esto puede invocarse desde un gestor usando :mod:" -"`subprocess`. Aquí se asume que los programas de línea de comando TTS no " -"esperarán interactuar con los usuarios o tardarán mucho en completarse, y " -"que la frecuencia de los mensajes registrados no será tan alta como para " -"inundar al usuario con mensajes, y que es aceptable que los mensajes se " -"reproducen uno a la vez en lugar de todos al mismo tiempo. La implementación " -"de ejemplo a continuación espera a que se pronuncie un mensaje antes de que " -"se procese el siguiente, y esto puede hacer que otros gestores se mantengan " -"esperando. Aquí hay un breve ejemplo que muestra el enfoque, que asume que " -"el paquete TTS ``espeak`` está disponible::" +"There might be situations when it is desirable to have logging messages rendered in " +"an audible rather than a visible format. This is easy to do if you have text-to-" +"speech (TTS) functionality available in your system, even if it doesn't have a " +"Python binding. Most TTS systems have a command line program you can run, and this " +"can be invoked from a handler using :mod:`subprocess`. It's assumed here that TTS " +"command line programs won't expect to interact with users or take a long time to " +"complete, and that the frequency of logged messages will be not so high as to swamp " +"the user with messages, and that it's acceptable to have the messages spoken one at " +"a time rather than concurrently, The example implementation below waits for one " +"message to be spoken before the next is processed, and this might cause other " +"handlers to be kept waiting. Here is a short example showing the approach, which " +"assumes that the ``espeak`` TTS package is available::" +msgstr "" +"Puede haber situaciones en las que sea deseable que los mensajes de registro se " +"presenten en un formato audible en lugar de visible. Esto es fácil de hacer si tiene " +"la funcionalidad de texto a voz (*TTS* por sus siglas en inglés) disponible en su " +"sistema, incluso si no tiene un *binding* Python. La mayoría de los sistemas TTS " +"tienen un programa de línea de comandos que puede ejecutar, y esto puede invocarse " +"desde un gestor usando :mod:`subprocess`. Aquí se asume que los programas de línea " +"de comando TTS no esperarán interactuar con los usuarios o tardarán mucho en " +"completarse, y que la frecuencia de los mensajes registrados no será tan alta como " +"para inundar al usuario con mensajes, y que es aceptable que los mensajes se " +"reproducen uno a la vez en lugar de todos al mismo tiempo. La implementación de " +"ejemplo a continuación espera a que se pronuncie un mensaje antes de que se procese " +"el siguiente, y esto puede hacer que otros gestores se mantengan esperando. Aquí hay " +"un breve ejemplo que muestra el enfoque, que asume que el paquete TTS ``espeak`` " +"está disponible::" #: ../Doc/howto/logging-cookbook.rst:2265 msgid "" -"When run, this script should say \"Hello\" and then \"Goodbye\" in a female " -"voice." +"When run, this script should say \"Hello\" and then \"Goodbye\" in a female voice." msgstr "" -"Cuando se ejecute, este script debería decir \"Hola\" y luego \"Adiós\" con " -"voz femenina." +"Cuando se ejecute, este script debería decir \"Hola\" y luego \"Adiós\" con voz " +"femenina." #: ../Doc/howto/logging-cookbook.rst:2267 msgid "" -"The above approach can, of course, be adapted to other TTS systems and even " -"other systems altogether which can process messages via external programs " -"run from a command line." +"The above approach can, of course, be adapted to other TTS systems and even other " +"systems altogether which can process messages via external programs run from a " +"command line." msgstr "" -"El enfoque anterior puede, por supuesto, adaptarse a otros sistemas TTS e " -"incluso a otros sistemas que pueden procesar mensajes a través de programas " -"externos ejecutados desde una línea de comando." +"El enfoque anterior puede, por supuesto, adaptarse a otros sistemas TTS e incluso a " +"otros sistemas que pueden procesar mensajes a través de programas externos " +"ejecutados desde una línea de comando." #: ../Doc/howto/logging-cookbook.rst:2275 msgid "Buffering logging messages and outputting them conditionally" -msgstr "" -"Almacenamiento en búfer de mensajes de registro y su salida condicional" +msgstr "Almacenamiento en búfer de mensajes de registro y su salida condicional" #: ../Doc/howto/logging-cookbook.rst:2277 msgid "" -"There might be situations where you want to log messages in a temporary area " -"and only output them if a certain condition occurs. For example, you may " -"want to start logging debug events in a function, and if the function " -"completes without errors, you don't want to clutter the log with the " -"collected debug information, but if there is an error, you want all the " -"debug information to be output as well as the error." +"There might be situations where you want to log messages in a temporary area and " +"only output them if a certain condition occurs. For example, you may want to start " +"logging debug events in a function, and if the function completes without errors, " +"you don't want to clutter the log with the collected debug information, but if there " +"is an error, you want all the debug information to be output as well as the error." msgstr "" -"Puede haber situaciones en las que desee registrar mensajes en un área " -"temporal y solo mostrarlos si se produce una determinada condición. Por " -"ejemplo, es posible que desee comenzar a registrar eventos de depuración en " -"una función, y si la función se completa sin errores, no desea saturar el " -"registro con la información de depuración recopilada; pero si hay un error, " -"desea toda la información de depuración información así como el error." +"Puede haber situaciones en las que desee registrar mensajes en un área temporal y " +"solo mostrarlos si se produce una determinada condición. Por ejemplo, es posible que " +"desee comenzar a registrar eventos de depuración en una función, y si la función se " +"completa sin errores, no desea saturar el registro con la información de depuración " +"recopilada; pero si hay un error, desea toda la información de depuración " +"información así como el error." #: ../Doc/howto/logging-cookbook.rst:2284 msgid "" -"Here is an example which shows how you could do this using a decorator for " -"your functions where you want logging to behave this way. It makes use of " -"the :class:`logging.handlers.MemoryHandler`, which allows buffering of " -"logged events until some condition occurs, at which point the buffered " -"events are ``flushed`` - passed to another handler (the ``target`` handler) " -"for processing. By default, the ``MemoryHandler`` flushed when its buffer " -"gets filled up or an event whose level is greater than or equal to a " -"specified threshold is seen. You can use this recipe with a more specialised " -"subclass of ``MemoryHandler`` if you want custom flushing behavior." -msgstr "" -"Aquí hay un ejemplo que muestra cómo puede hacer esto usando un decorador " -"para sus funciones donde desea que el registro se comporte de esta manera. " -"Hace uso de :class:`logging.handlers.MemoryHandler`, que permite el " -"almacenamiento en búfer de eventos registrados hasta que se produzca alguna " -"condición, momento en el que los eventos almacenados en búfer se ``flushed`` " -"y se pasan a otro gestor (el gestor ``target``) para su procesamiento. De " -"forma predeterminada, el ``MemoryHandler`` se vacía cuando su búfer se llena " -"o se ve un evento cuyo nivel es mayor o igual a un umbral especificado. " -"Puede usar esta receta con una subclase más especializada de " +"Here is an example which shows how you could do this using a decorator for your " +"functions where you want logging to behave this way. It makes use of the :class:" +"`logging.handlers.MemoryHandler`, which allows buffering of logged events until some " +"condition occurs, at which point the buffered events are ``flushed`` - passed to " +"another handler (the ``target`` handler) for processing. By default, the " +"``MemoryHandler`` flushed when its buffer gets filled up or an event whose level is " +"greater than or equal to a specified threshold is seen. You can use this recipe with " +"a more specialised subclass of ``MemoryHandler`` if you want custom flushing " +"behavior." +msgstr "" +"Aquí hay un ejemplo que muestra cómo puede hacer esto usando un decorador para sus " +"funciones donde desea que el registro se comporte de esta manera. Hace uso de :class:" +"`logging.handlers.MemoryHandler`, que permite el almacenamiento en búfer de eventos " +"registrados hasta que se produzca alguna condición, momento en el que los eventos " +"almacenados en búfer se ``flushed`` y se pasan a otro gestor (el gestor ``target``) " +"para su procesamiento. De forma predeterminada, el ``MemoryHandler`` se vacía cuando " +"su búfer se llena o se ve un evento cuyo nivel es mayor o igual a un umbral " +"especificado. Puede usar esta receta con una subclase más especializada de " "``MemoryHandler`` si desea un comportamiento de descarga personalizado." #: ../Doc/howto/logging-cookbook.rst:2294 msgid "" -"The example script has a simple function, ``foo``, which just cycles through " -"all the logging levels, writing to ``sys.stderr`` to say what level it's " -"about to log at, and then actually logging a message at that level. You can " -"pass a parameter to ``foo`` which, if true, will log at ERROR and CRITICAL " -"levels - otherwise, it only logs at DEBUG, INFO and WARNING levels." +"The example script has a simple function, ``foo``, which just cycles through all the " +"logging levels, writing to ``sys.stderr`` to say what level it's about to log at, " +"and then actually logging a message at that level. You can pass a parameter to " +"``foo`` which, if true, will log at ERROR and CRITICAL levels - otherwise, it only " +"logs at DEBUG, INFO and WARNING levels." msgstr "" -"El script de ejemplo tiene una función simple, ``foo``, que recorre todos " -"los niveles de registro, escribiendo en ``sys.stderr`` para decir en qué " -"nivel está a punto de *loguear* y luego registrar un mensaje en ese nivel. " -"Puede pasar un parámetro a ``foo`` que, si es verdadero, se registrará en " -"los niveles ERROR y CRITICAL; de lo contrario, solo registrará en los " -"niveles DEBUG, INFO y WARNING." +"El script de ejemplo tiene una función simple, ``foo``, que recorre todos los " +"niveles de registro, escribiendo en ``sys.stderr`` para decir en qué nivel está a " +"punto de *loguear* y luego registrar un mensaje en ese nivel. Puede pasar un " +"parámetro a ``foo`` que, si es verdadero, se registrará en los niveles ERROR y " +"CRITICAL; de lo contrario, solo registrará en los niveles DEBUG, INFO y WARNING." #: ../Doc/howto/logging-cookbook.rst:2300 msgid "" -"The script just arranges to decorate ``foo`` with a decorator which will do " -"the conditional logging that's required. The decorator takes a logger as a " -"parameter and attaches a memory handler for the duration of the call to the " -"decorated function. The decorator can be additionally parameterised using a " -"target handler, a level at which flushing should occur, and a capacity for " -"the buffer (number of records buffered). These default to a :class:`~logging." -"StreamHandler` which writes to ``sys.stderr``, ``logging.ERROR`` and ``100`` " -"respectively." -msgstr "" -"El script simplemente dispone decorar ``foo`` con un decorador que hará el " -"logging condicional que se requiere. El decorador toma un registrador como " -"parámetro y adjunta un gestor de memoria durante la duración de la llamada a " -"la función decorada. El decorador se puede parametrizar adicionalmente " -"utilizando un gestor *target*, un nivel en el que debe producirse el vaciado " -"y una capacidad para el búfer (número de registros almacenados en búfer). " -"Estos están predeterminados a :class:`~logging.StreamHandler` que escribe " -"en``sys.stderr``, ``logging.ERROR`` y ``100`` respectivamente." +"The script just arranges to decorate ``foo`` with a decorator which will do the " +"conditional logging that's required. The decorator takes a logger as a parameter and " +"attaches a memory handler for the duration of the call to the decorated function. " +"The decorator can be additionally parameterised using a target handler, a level at " +"which flushing should occur, and a capacity for the buffer (number of records " +"buffered). These default to a :class:`~logging.StreamHandler` which writes to ``sys." +"stderr``, ``logging.ERROR`` and ``100`` respectively." +msgstr "" +"El script simplemente dispone decorar ``foo`` con un decorador que hará el logging " +"condicional que se requiere. El decorador toma un registrador como parámetro y " +"adjunta un gestor de memoria durante la duración de la llamada a la función " +"decorada. El decorador se puede parametrizar adicionalmente utilizando un gestor " +"*target*, un nivel en el que debe producirse el vaciado y una capacidad para el " +"búfer (número de registros almacenados en búfer). Estos están predeterminados a :" +"class:`~logging.StreamHandler` que escribe en``sys.stderr``, ``logging.ERROR`` y " +"``100`` respectivamente." #: ../Doc/howto/logging-cookbook.rst:2308 msgid "Here's the script::" @@ -1964,18 +1849,17 @@ msgstr "Aquí está el script::" #: ../Doc/howto/logging-cookbook.rst:2371 msgid "When this script is run, the following output should be observed:" -msgstr "" -"Cuando se ejecuta este script, se debe observar el siguiente resultado::" +msgstr "Cuando se ejecuta este script, se debe observar el siguiente resultado::" #: ../Doc/howto/logging-cookbook.rst:2401 msgid "" -"As you can see, actual logging output only occurs when an event is logged " -"whose severity is ERROR or greater, but in that case, any previous events at " -"lower severities are also logged." +"As you can see, actual logging output only occurs when an event is logged whose " +"severity is ERROR or greater, but in that case, any previous events at lower " +"severities are also logged." msgstr "" -"Como puede ver, la salida real de logging solo ocurre cuando se registra un " -"evento cuya gravedad es ERROR o mayor, pero en ese caso, también se registra " -"cualquier evento anterior con una gravedad menor." +"Como puede ver, la salida real de logging solo ocurre cuando se registra un evento " +"cuya gravedad es ERROR o mayor, pero en ese caso, también se registra cualquier " +"evento anterior con una gravedad menor." #: ../Doc/howto/logging-cookbook.rst:2405 msgid "You can of course use the conventional means of decoration::" @@ -1987,23 +1871,23 @@ msgstr "Formateo de horas usando UTC (GMT) a través de la configuración" #: ../Doc/howto/logging-cookbook.rst:2417 msgid "" -"Sometimes you want to format times using UTC, which can be done using a " -"class such as `UTCFormatter`, shown below::" +"Sometimes you want to format times using UTC, which can be done using a class such " +"as `UTCFormatter`, shown below::" msgstr "" -"A veces desea formatear las horas usando UTC, lo que se puede hacer usando " -"una clase como `UTCFormatter`, como se muestra a continuación::" +"A veces desea formatear las horas usando UTC, lo que se puede hacer usando una clase " +"como `UTCFormatter`, como se muestra a continuación::" #: ../Doc/howto/logging-cookbook.rst:2426 msgid "" -"and you can then use the ``UTCFormatter`` in your code instead of :class:" -"`~logging.Formatter`. If you want to do that via configuration, you can use " -"the :func:`~logging.config.dictConfig` API with an approach illustrated by " -"the following complete example::" +"and you can then use the ``UTCFormatter`` in your code instead of :class:`~logging." +"Formatter`. If you want to do that via configuration, you can use the :func:" +"`~logging.config.dictConfig` API with an approach illustrated by the following " +"complete example::" msgstr "" -"y luego puede usar el ``UTCFormatter`` en su código en lugar de :class:" -"`~logging.Formatter`. Si desea hacer eso a través de la configuración, puede " -"usar la API :func:`~logging.config.dictConfig` con un enfoque ilustrado por " -"el siguiente ejemplo completo::" +"y luego puede usar el ``UTCFormatter`` en su código en lugar de :class:`~logging." +"Formatter`. Si desea hacer eso a través de la configuración, puede usar la API :func:" +"`~logging.config.dictConfig` con un enfoque ilustrado por el siguiente ejemplo " +"completo::" #: ../Doc/howto/logging-cookbook.rst:2469 msgid "When this script is run, it should print something like:" @@ -2011,11 +1895,9 @@ msgstr "Cuando se ejecuta este script, debería imprimir algo como:" #: ../Doc/howto/logging-cookbook.rst:2476 msgid "" -"showing how the time is formatted both as local time and UTC, one for each " -"handler." +"showing how the time is formatted both as local time and UTC, one for each handler." msgstr "" -"mostrando cómo se formatea la hora como hora local y UTC, una para cada " -"gestor." +"mostrando cómo se formatea la hora como hora local y UTC, una para cada gestor." #: ../Doc/howto/logging-cookbook.rst:2483 msgid "Using a context manager for selective logging" @@ -2024,67 +1906,61 @@ msgstr "Usar un administrador de contexto para logging selectivo" #: ../Doc/howto/logging-cookbook.rst:2485 msgid "" "There are times when it would be useful to temporarily change the logging " -"configuration and revert it back after doing something. For this, a context " -"manager is the most obvious way of saving and restoring the logging context. " -"Here is a simple example of such a context manager, which allows you to " -"optionally change the logging level and add a logging handler purely in the " -"scope of the context manager::" -msgstr "" -"Hay ocasiones en las que sería útil cambiar temporalmente la configuración " -"de logging y revertir esto después de hacer algo. Para ello, un " -"administrador de contexto es la forma más obvia de guardar y restaurar el " -"contexto de logging. Aquí hay un ejemplo simple de un administrador de " -"contexto de este tipo, que le permite cambiar opcionalmente el nivel de " -"registro y agregar un gestor de registro exclusivamente en el alcance del " -"administrador de contexto::" +"configuration and revert it back after doing something. For this, a context manager " +"is the most obvious way of saving and restoring the logging context. Here is a " +"simple example of such a context manager, which allows you to optionally change the " +"logging level and add a logging handler purely in the scope of the context manager::" +msgstr "" +"Hay ocasiones en las que sería útil cambiar temporalmente la configuración de " +"logging y revertir esto después de hacer algo. Para ello, un administrador de " +"contexto es la forma más obvia de guardar y restaurar el contexto de logging. Aquí " +"hay un ejemplo simple de un administrador de contexto de este tipo, que le permite " +"cambiar opcionalmente el nivel de registro y agregar un gestor de registro " +"exclusivamente en el alcance del administrador de contexto::" #: ../Doc/howto/logging-cookbook.rst:2518 msgid "" -"If you specify a level value, the logger's level is set to that value in the " -"scope of the with block covered by the context manager. If you specify a " -"handler, it is added to the logger on entry to the block and removed on exit " -"from the block. You can also ask the manager to close the handler for you on " -"block exit - you could do this if you don't need the handler any more." +"If you specify a level value, the logger's level is set to that value in the scope " +"of the with block covered by the context manager. If you specify a handler, it is " +"added to the logger on entry to the block and removed on exit from the block. You " +"can also ask the manager to close the handler for you on block exit - you could do " +"this if you don't need the handler any more." msgstr "" -"Si especifica un valor de nivel, el nivel del registrador se establece en " -"ese valor en el alcance del bloque *with* cubierto por el administrador de " -"contexto. Si especifica un gestor, se agrega al registrador al entrar al " -"bloque y se elimina al salir del bloque. También puede pedirle al " -"administrador que cierre el gestor por usted al salir del bloque si ya no lo " -"necesita." +"Si especifica un valor de nivel, el nivel del registrador se establece en ese valor " +"en el alcance del bloque *with* cubierto por el administrador de contexto. Si " +"especifica un gestor, se agrega al registrador al entrar al bloque y se elimina al " +"salir del bloque. También puede pedirle al administrador que cierre el gestor por " +"usted al salir del bloque si ya no lo necesita." #: ../Doc/howto/logging-cookbook.rst:2524 msgid "" -"To illustrate how it works, we can add the following block of code to the " -"above::" +"To illustrate how it works, we can add the following block of code to the above::" msgstr "" -"Para ilustrar cómo funciona, podemos agregar el siguiente bloque de código " -"al anterior::" +"Para ilustrar cómo funciona, podemos agregar el siguiente bloque de código al " +"anterior::" #: ../Doc/howto/logging-cookbook.rst:2542 msgid "" -"We initially set the logger's level to ``INFO``, so message #1 appears and " -"message #2 doesn't. We then change the level to ``DEBUG`` temporarily in the " -"following ``with`` block, and so message #3 appears. After the block exits, " -"the logger's level is restored to ``INFO`` and so message #4 doesn't appear. " -"In the next ``with`` block, we set the level to ``DEBUG`` again but also add " -"a handler writing to ``sys.stdout``. Thus, message #5 appears twice on the " -"console (once via ``stderr`` and once via ``stdout``). After the ``with`` " -"statement's completion, the status is as it was before so message #6 appears " -"(like message #1) whereas message #7 doesn't (just like message #2)." -msgstr "" -"Inicialmente configuramos el nivel del registrador en ``INFO``, por lo que " -"aparece el mensaje #1 y el mensaje #2 no. Luego cambiamos el nivel a " -"``DEBUG`` temporalmente en el siguiente bloque ``with``, y aparece el " -"mensaje #3. Una vez que se sale del bloque, el nivel del registrador se " -"restaura a ``INFO`` y, por lo tanto, el mensaje #4 no aparece. En el " -"siguiente bloque ``with``, configuramos el nivel en ``DEBUG`` nuevamente, " -"pero también agregamos un gestor que escribe en ``sys.stdout``. Por lo " -"tanto, el mensaje #5 aparece dos veces en la consola (una vez a través de " -"``stderr`` y una vez a través de ``stdout``). Después de la finalización de " -"la declaración ``with``, se vuelve al estado anterior, por lo que aparece el " -"mensaje #6 (como el mensaje #1) mientras que el mensaje #7 no (como el " -"mensaje #2)." +"We initially set the logger's level to ``INFO``, so message #1 appears and message " +"#2 doesn't. We then change the level to ``DEBUG`` temporarily in the following " +"``with`` block, and so message #3 appears. After the block exits, the logger's level " +"is restored to ``INFO`` and so message #4 doesn't appear. In the next ``with`` " +"block, we set the level to ``DEBUG`` again but also add a handler writing to ``sys." +"stdout``. Thus, message #5 appears twice on the console (once via ``stderr`` and " +"once via ``stdout``). After the ``with`` statement's completion, the status is as it " +"was before so message #6 appears (like message #1) whereas message #7 doesn't (just " +"like message #2)." +msgstr "" +"Inicialmente configuramos el nivel del registrador en ``INFO``, por lo que aparece " +"el mensaje #1 y el mensaje #2 no. Luego cambiamos el nivel a ``DEBUG`` temporalmente " +"en el siguiente bloque ``with``, y aparece el mensaje #3. Una vez que se sale del " +"bloque, el nivel del registrador se restaura a ``INFO`` y, por lo tanto, el mensaje " +"#4 no aparece. En el siguiente bloque ``with``, configuramos el nivel en ``DEBUG`` " +"nuevamente, pero también agregamos un gestor que escribe en ``sys.stdout``. Por lo " +"tanto, el mensaje #5 aparece dos veces en la consola (una vez a través de ``stderr`` " +"y una vez a través de ``stdout``). Después de la finalización de la declaración " +"``with``, se vuelve al estado anterior, por lo que aparece el mensaje #6 (como el " +"mensaje #1) mientras que el mensaje #7 no (como el mensaje #2)." #: ../Doc/howto/logging-cookbook.rst:2552 msgid "If we run the resulting script, the result is as follows:" @@ -2092,33 +1968,30 @@ msgstr "Si ejecutamos el script resultante, el resultado es el siguiente:" #: ../Doc/howto/logging-cookbook.rst:2563 msgid "" -"If we run it again, but pipe ``stderr`` to ``/dev/null``, we see the " -"following, which is the only message written to ``stdout``:" +"If we run it again, but pipe ``stderr`` to ``/dev/null``, we see the following, " +"which is the only message written to ``stdout``:" msgstr "" -"Si lo ejecutamos de nuevo, pero dirigimos ``stderr`` a ``/dev/null``, vemos " -"lo siguiente, que es el único mensaje escrito en ``stdout``:" +"Si lo ejecutamos de nuevo, pero dirigimos ``stderr`` a ``/dev/null``, vemos lo " +"siguiente, que es el único mensaje escrito en ``stdout``:" #: ../Doc/howto/logging-cookbook.rst:2571 msgid "Once again, but piping ``stdout`` to ``/dev/null``, we get:" msgstr "Una vez más, pero canalizando ``stdout`` a ``/dev/null``, obtenemos:" #: ../Doc/howto/logging-cookbook.rst:2581 -msgid "" -"In this case, the message #5 printed to ``stdout`` doesn't appear, as " -"expected." +msgid "In this case, the message #5 printed to ``stdout`` doesn't appear, as expected." msgstr "" -"En este caso, el mensaje #5 impreso en ``stdout`` no aparece, como se " -"esperaba." +"En este caso, el mensaje #5 impreso en ``stdout`` no aparece, como se esperaba." #: ../Doc/howto/logging-cookbook.rst:2583 msgid "" -"Of course, the approach described here can be generalised, for example to " -"attach logging filters temporarily. Note that the above code works in Python " -"2 as well as Python 3." +"Of course, the approach described here can be generalised, for example to attach " +"logging filters temporarily. Note that the above code works in Python 2 as well as " +"Python 3." msgstr "" -"Por supuesto, el enfoque descrito aquí puede generalizarse, por ejemplo, " -"para adjuntar filtros de logging temporalmente. Tenga en cuenta que el " -"código anterior funciona tanto en Python 2 como en Python 3." +"Por supuesto, el enfoque descrito aquí puede generalizarse, por ejemplo, para " +"adjuntar filtros de logging temporalmente. Tenga en cuenta que el código anterior " +"funciona tanto en Python 2 como en Python 3." #: ../Doc/howto/logging-cookbook.rst:2591 msgid "A CLI application starter template" @@ -2130,16 +2003,15 @@ msgstr "Aquí hay un ejemplo que muestra cómo puede:" #: ../Doc/howto/logging-cookbook.rst:2595 msgid "Use a logging level based on command-line arguments" -msgstr "" -"Utilizar un nivel de logging basado en argumentos de la línea de comandos" +msgstr "Utilizar un nivel de logging basado en argumentos de la línea de comandos" #: ../Doc/howto/logging-cookbook.rst:2596 msgid "" -"Dispatch to multiple subcommands in separate files, all logging at the same " -"level in a consistent way" +"Dispatch to multiple subcommands in separate files, all logging at the same level in " +"a consistent way" msgstr "" -"Enviar a varios subcomandos en archivos separados, todos registrando en el " -"mismo nivel de forma coherente" +"Enviar a varios subcomandos en archivos separados, todos registrando en el mismo " +"nivel de forma coherente" #: ../Doc/howto/logging-cookbook.rst:2598 msgid "Make use of simple, minimal configuration" @@ -2147,30 +2019,28 @@ msgstr "Utilizar una configuración mínima y sencilla" #: ../Doc/howto/logging-cookbook.rst:2600 msgid "" -"Suppose we have a command-line application whose job is to stop, start or " -"restart some services. This could be organised for the purposes of " -"illustration as a file ``app.py`` that is the main script for the " -"application, with individual commands implemented in ``start.py``, ``stop." -"py`` and ``restart.py``. Suppose further that we want to control the " -"verbosity of the application via a command-line argument, defaulting to " -"``logging.INFO``. Here's one way that ``app.py`` could be written::" -msgstr "" -"Supongamos que tenemos una aplicación de línea de comandos cuyo trabajo es " -"detener, iniciar o reiniciar algunos servicios. Esto podría organizarse con " -"fines ilustrativos como un archivo ``app.py`` que es el script principal de " -"la aplicación, con comandos individuales implementados en ``start.py``, " -"``stop.py`` y ``restart.py``. Supongamos además que queremos controlar la " -"verbosidad de la aplicación a través de un argumento de línea de comandos, " -"por defecto en ``logging.INFO``. Aquí hay una forma en que se podría " -"escribir ``app.py``::" +"Suppose we have a command-line application whose job is to stop, start or restart " +"some services. This could be organised for the purposes of illustration as a file " +"``app.py`` that is the main script for the application, with individual commands " +"implemented in ``start.py``, ``stop.py`` and ``restart.py``. Suppose further that we " +"want to control the verbosity of the application via a command-line argument, " +"defaulting to ``logging.INFO``. Here's one way that ``app.py`` could be written::" +msgstr "" +"Supongamos que tenemos una aplicación de línea de comandos cuyo trabajo es detener, " +"iniciar o reiniciar algunos servicios. Esto podría organizarse con fines " +"ilustrativos como un archivo ``app.py`` que es el script principal de la aplicación, " +"con comandos individuales implementados en ``start.py``, ``stop.py`` y ``restart." +"py``. Supongamos además que queremos controlar la verbosidad de la aplicación a " +"través de un argumento de línea de comandos, por defecto en ``logging.INFO``. Aquí " +"hay una forma en que se podría escribir ``app.py``::" #: ../Doc/howto/logging-cookbook.rst:2649 msgid "" -"And the ``start``, ``stop`` and ``restart`` commands can be implemented in " -"separate modules, like so for starting::" +"And the ``start``, ``stop`` and ``restart`` commands can be implemented in separate " +"modules, like so for starting::" msgstr "" -"Y los comandos ``start``, ``stop`` y ``reiniciar`` se pueden implementar en " -"módulos separados, como para iniciar::" +"Y los comandos ``start``, ``stop`` y ``reiniciar`` se pueden implementar en módulos " +"separados, como para iniciar::" #: ../Doc/howto/logging-cookbook.rst:2662 msgid "and thus for stopping::" @@ -2181,25 +2051,23 @@ msgid "and similarly for restarting::" msgstr "y de manera similar para reiniciar::" #: ../Doc/howto/logging-cookbook.rst:2704 -msgid "" -"If we run this application with the default log level, we get output like " -"this:" +msgid "If we run this application with the default log level, we get output like this:" msgstr "" -"Si ejecutamos esta aplicación con el nivel de registro predeterminado, " -"obtenemos un resultado como este:" +"Si ejecutamos esta aplicación con el nivel de registro predeterminado, obtenemos un " +"resultado como este:" #: ../Doc/howto/logging-cookbook.rst:2717 msgid "" -"The first word is the logging level, and the second word is the module or " -"package name of the place where the event was logged." +"The first word is the logging level, and the second word is the module or package " +"name of the place where the event was logged." msgstr "" -"La primera palabra es el nivel de logging y la segunda palabra es el nombre " -"del módulo o paquete del lugar donde se registró el evento." +"La primera palabra es el nivel de logging y la segunda palabra es el nombre del " +"módulo o paquete del lugar donde se registró el evento." #: ../Doc/howto/logging-cookbook.rst:2720 msgid "" -"If we change the logging level, then we can change the information sent to " -"the log. For example, if we want more information:" +"If we change the logging level, then we can change the information sent to the log. " +"For example, if we want more information:" msgstr "" "Si cambiamos el nivel de logging, podemos cambiar la información enviada al " "registro. Por ejemplo, si queremos más información:" @@ -2210,11 +2078,11 @@ msgstr "Y si queremos menos:" #: ../Doc/howto/logging-cookbook.rst:2745 msgid "" -"In this case, the commands don't print anything to the console, since " -"nothing at ``WARNING`` level or above is logged by them." +"In this case, the commands don't print anything to the console, since nothing at " +"``WARNING`` level or above is logged by them." msgstr "" -"En este caso, los comandos no imprimen nada en la consola, ya que no " -"registran nada en el nivel de ``WARNING`` o superior." +"En este caso, los comandos no imprimen nada en la consola, ya que no registran nada " +"en el nivel de ``WARNING`` o superior." #: ../Doc/howto/logging-cookbook.rst:2751 msgid "A Qt GUI for logging" @@ -2222,54 +2090,49 @@ msgstr "Una GUI de Qt para logging" #: ../Doc/howto/logging-cookbook.rst:2753 msgid "" -"A question that comes up from time to time is about how to log to a GUI " -"application. The `Qt `_ framework is a popular cross-" -"platform UI framework with Python bindings using `PySide2 `_ or `PyQt5 `_ libraries." +"A question that comes up from time to time is about how to log to a GUI application. " +"The `Qt `_ framework is a popular cross-platform UI framework " +"with Python bindings using `PySide2 `_ or `PyQt5 " +"`_ libraries." msgstr "" -"Una pregunta que surge de vez en cuando es sobre cómo *loggear* en una " -"aplicación GUI. El *framework* `Qt ` _ es un *framework* " -"popular multiplataforma con bindings de Python que usan PySide2 `_ o librerías `PyQt5 `_ ." +"Una pregunta que surge de vez en cuando es sobre cómo *loggear* en una aplicación " +"GUI. El *framework* `Qt ` _ es un *framework* popular " +"multiplataforma con bindings de Python que usan PySide2 `_ o librerías `PyQt5 `_ ." #: ../Doc/howto/logging-cookbook.rst:2759 msgid "" "The following example shows how to log to a Qt GUI. This introduces a simple " -"``QtHandler`` class which takes a callable, which should be a slot in the " -"main thread that does GUI updates. A worker thread is also created to show " -"how you can log to the GUI from both the UI itself (via a button for manual " -"logging) as well as a worker thread doing work in the background (here, just " -"logging messages at random levels with random short delays in between)." -msgstr "" -"El siguiente ejemplo muestra cómo iniciar sesión en una GUI de Qt. Esto " -"introduce una clase simple ``QtHandler`` que toma un invocable, que debería " -"ser un slot en el hilo principal que realiza actualizaciones de la GUI. " -"También se crea un hilo de trabajo para mostrar cómo puede iniciar sesión en " -"la GUI tanto desde la propia interfaz de usuario (a través de un botón para " -"el registro manual) como desde un hilo de trabajo que trabaja en segundo " -"plano (aquí, simplemente registrando mensajes en niveles aleatorios con " -"aleatorio breves retrasos intermedios)." +"``QtHandler`` class which takes a callable, which should be a slot in the main " +"thread that does GUI updates. A worker thread is also created to show how you can " +"log to the GUI from both the UI itself (via a button for manual logging) as well as " +"a worker thread doing work in the background (here, just logging messages at random " +"levels with random short delays in between)." +msgstr "" +"El siguiente ejemplo muestra cómo iniciar sesión en una GUI de Qt. Esto introduce " +"una clase simple ``QtHandler`` que toma un invocable, que debería ser un slot en el " +"hilo principal que realiza actualizaciones de la GUI. También se crea un hilo de " +"trabajo para mostrar cómo puede iniciar sesión en la GUI tanto desde la propia " +"interfaz de usuario (a través de un botón para el registro manual) como desde un " +"hilo de trabajo que trabaja en segundo plano (aquí, simplemente registrando mensajes " +"en niveles aleatorios con aleatorio breves retrasos intermedios)." #: ../Doc/howto/logging-cookbook.rst:2766 msgid "" -"The worker thread is implemented using Qt's ``QThread`` class rather than " -"the :mod:`threading` module, as there are circumstances where one has to use " -"``QThread``, which offers better integration with other ``Qt`` components." +"The worker thread is implemented using Qt's ``QThread`` class rather than the :mod:" +"`threading` module, as there are circumstances where one has to use ``QThread``, " +"which offers better integration with other ``Qt`` components." msgstr "" -"El hilo *worker* se implementa usando la clase ``QThread`` de Qt en lugar " -"del módulo :mod:`threading`, ya que hay circunstancias en las que uno tiene " -"que usar ``QThread``, que ofrece una mejor integración con otros componentes " -"``Qt``." +"El hilo *worker* se implementa usando la clase ``QThread`` de Qt en lugar del " +"módulo :mod:`threading`, ya que hay circunstancias en las que uno tiene que usar " +"``QThread``, que ofrece una mejor integración con otros componentes ``Qt``." #: ../Doc/howto/logging-cookbook.rst:2770 msgid "" -"The code should work with recent releases of either ``PySide2`` or " -"``PyQt5``. You should be able to adapt the approach to earlier versions of " -"Qt. Please refer to the comments in the code snippet for more detailed " -"information." +"The code should work with recent releases of either ``PySide2`` or ``PyQt5``. You " +"should be able to adapt the approach to earlier versions of Qt. Please refer to the " +"comments in the code snippet for more detailed information." msgstr "" -"El código debería funcionar con versiones recientes de ``PySide2`` o " -"``PyQt5``. Debería poder adaptar el enfoque a versiones anteriores de Qt. " -"Consulte los comentarios en el fragmento de código para obtener información " -"más detallada." +"El código debería funcionar con versiones recientes de ``PySide2`` o ``PyQt5``. " +"Debería poder adaptar el enfoque a versiones anteriores de Qt. Consulte los " +"comentarios en el fragmento de código para obtener información más detallada." From 06ae3ee9d024e8ec10c2bed83052d97340150338 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Sun, 4 Oct 2020 15:54:32 -0300 Subject: [PATCH 19/34] ajustes --- howto/logging.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/howto/logging.po b/howto/logging.po index c797e8b44d..06d6587f25 100644 --- a/howto/logging.po +++ b/howto/logging.po @@ -9,12 +9,12 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: 2020-05-29 17:19-0700\n" +"PO-Revision-Date: 2020-10-04 15:40-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.3.1\n" +"X-Generator: Poedit 2.4.1\n" "Last-Translator: \n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "Language: es_US\n" From 675c72c78beea9a2d8bdb10c9a600348239b1d5a Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Sun, 4 Oct 2020 16:39:34 -0300 Subject: [PATCH 20/34] ajustes --- howto/logging-cookbook.po | 2593 +++++++++++++++++++------------------ 1 file changed, 1358 insertions(+), 1235 deletions(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 99682c610f..5afc5e0a11 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-05 12:54+0200\n" -"PO-Revision-Date: 2020-10-04 15:46-0300\n" +"PO-Revision-Date: 2020-10-04 16:36-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -36,11 +36,11 @@ msgstr "Vinay Sajip " #: ../Doc/howto/logging-cookbook.rst:9 msgid "" -"This page contains a number of recipes related to logging, which have been found " -"useful in the past." +"This page contains a number of recipes related to logging, which have been " +"found useful in the past." msgstr "" -"Esta página contiene un número de recetas sobre *logging*, que han sido útiles en el " -"pasado." +"Esta página contiene un número de recetas sobre *logging*, que han sido " +"útiles en el pasado." #: ../Doc/howto/logging-cookbook.rst:15 msgid "Using logging in multiple modules" @@ -48,21 +48,23 @@ msgstr "Usar logging en múltiples módulos" #: ../Doc/howto/logging-cookbook.rst:17 msgid "" -"Multiple calls to ``logging.getLogger('someLogger')`` return a reference to the same " -"logger object. This is true not only within the same module, but also across " -"modules as long as it is in the same Python interpreter process. It is true for " -"references to the same object; additionally, application code can define and " -"configure a parent logger in one module and create (but not configure) a child " -"logger in a separate module, and all logger calls to the child will pass up to the " -"parent. Here is a main module::" -msgstr "" -"Múltiples llamadas a ``logging.getLogger('someLogger')`` devuelven una referencia al " -"mismo objeto logger. Esto es cierto no solo dentro del mismo módulo, sino también en " -"todos los módulos siempre que estén ejecutándose en el mismo proceso del intérprete " -"de Python. Es válido para las referencias al mismo objeto. Además, el código de la " -"aplicación puede definir y configurar un logger primario en un módulo y crear (pero " -"no configurar) un logger secundario en un módulo separado, y todas las llamadas al " -"secundario pasarán al principal. A continuación un módulo principal::" +"Multiple calls to ``logging.getLogger('someLogger')`` return a reference to " +"the same logger object. This is true not only within the same module, but " +"also across modules as long as it is in the same Python interpreter " +"process. It is true for references to the same object; additionally, " +"application code can define and configure a parent logger in one module and " +"create (but not configure) a child logger in a separate module, and all " +"logger calls to the child will pass up to the parent. Here is a main " +"module::" +msgstr "" +"Múltiples llamadas a ``logging.getLogger('someLogger')`` devuelven una " +"referencia al mismo objeto logger. Esto es cierto no solo dentro del mismo " +"módulo, sino también en todos los módulos siempre que estén ejecutándose en " +"el mismo proceso del intérprete de Python. Es válido para las referencias al " +"mismo objeto. Además, el código de la aplicación puede definir y configurar " +"un logger primario en un módulo y crear (pero no configurar) un logger " +"secundario en un módulo separado, y todas las llamadas al secundario pasarán " +"al principal. A continuación un módulo principal::" # Esto me confunde un poco. Cuando menciona módulo principal / auxiliar en los ejemplos, ¿se refiere a principal y secundario que está en el cuerpo del texto? ¿no convendría unificar? #: ../Doc/howto/logging-cookbook.rst:55 @@ -79,12 +81,12 @@ msgstr "Logging desde múltiples hilos" #: ../Doc/howto/logging-cookbook.rst:103 msgid "" -"Logging from multiple threads requires no special effort. The following example " -"shows logging from the main (initial) thread and another thread::" +"Logging from multiple threads requires no special effort. The following " +"example shows logging from the main (initial) thread and another thread::" msgstr "" -"Realizar *logging* desde múltiples hilos (*threads*) no requiere ningún esfuerzo " -"especial. El siguiente ejemplo muestra el registro desde el hilo principal (inicial) " -"y otro hilo::" +"Realizar *logging* desde múltiples hilos (*threads*) no requiere ningún " +"esfuerzo especial. El siguiente ejemplo muestra el registro desde el hilo " +"principal (inicial) y otro hilo::" #: ../Doc/howto/logging-cookbook.rst:132 msgid "When run, the script should print something like the following:" @@ -92,11 +94,11 @@ msgstr "Cuando se ejecuta, el script debe imprimir algo como lo siguiente:" #: ../Doc/howto/logging-cookbook.rst:154 msgid "" -"This shows the logging output interspersed as one might expect. This approach works " -"for more threads than shown here, of course." +"This shows the logging output interspersed as one might expect. This " +"approach works for more threads than shown here, of course." msgstr "" -"Esto muestra la salida de registro intercalada como cabría esperar. Por supuesto, " -"este enfoque funciona para más hilos de lo que se muestran aquí." +"Esto muestra la salida de registro intercalada como cabría esperar. Por " +"supuesto, este enfoque funciona para más hilos de lo que se muestran aquí." #: ../Doc/howto/logging-cookbook.rst:158 msgid "Multiple handlers and formatters" @@ -104,50 +106,54 @@ msgstr "Múltiples gestores y formateadores" #: ../Doc/howto/logging-cookbook.rst:160 msgid "" -"Loggers are plain Python objects. The :meth:`~Logger.addHandler` method has no " -"minimum or maximum quota for the number of handlers you may add. Sometimes it will " -"be beneficial for an application to log all messages of all severities to a text " -"file while simultaneously logging errors or above to the console. To set this up, " -"simply configure the appropriate handlers. The logging calls in the application " -"code will remain unchanged. Here is a slight modification to the previous simple " -"module-based configuration example::" -msgstr "" -"Los *loggers* son simples objetos Python. El método :meth:`~Logger.addHandler` no " -"tiene una cuota mínima o máxima para la cantidad de gestores (*handlers*) que puede " -"agregar. A veces será beneficioso para una aplicación registrar todos los mensajes " -"de todas las severidades en un archivo de texto mientras se registran " -"simultáneamente los errores o más en la consola. Para configurar esto, simplemente " -"configure los gestores apropiados. Las llamadas de registro en el código de la " -"aplicación permanecerán sin cambios. Aquí hay una ligera modificación al ejemplo de " -"configuración simple anterior basado en módulo::" +"Loggers are plain Python objects. The :meth:`~Logger.addHandler` method has " +"no minimum or maximum quota for the number of handlers you may add. " +"Sometimes it will be beneficial for an application to log all messages of " +"all severities to a text file while simultaneously logging errors or above " +"to the console. To set this up, simply configure the appropriate handlers. " +"The logging calls in the application code will remain unchanged. Here is a " +"slight modification to the previous simple module-based configuration " +"example::" +msgstr "" +"Los *loggers* son simples objetos Python. El método :meth:`~Logger." +"addHandler` no tiene una cuota mínima o máxima para la cantidad de gestores " +"(*handlers*) que puede agregar. A veces será beneficioso para una aplicación " +"registrar todos los mensajes de todas las severidades en un archivo de texto " +"mientras se registran simultáneamente los errores o más en la consola. Para " +"configurar esto, simplemente configure los gestores apropiados. Las llamadas " +"de registro en el código de la aplicación permanecerán sin cambios. Aquí hay " +"una ligera modificación al ejemplo de configuración simple anterior basado " +"en módulo::" #: ../Doc/howto/logging-cookbook.rst:193 msgid "" -"Notice that the 'application' code does not care about multiple handlers. All that " -"changed was the addition and configuration of a new handler named *fh*." +"Notice that the 'application' code does not care about multiple handlers. " +"All that changed was the addition and configuration of a new handler named " +"*fh*." msgstr "" -"Tenga en cuenta que el código de la 'aplicación' no se preocupa por los gestores " -"múltiples. Todo lo que cambió fue la adición y configuración de un nuevo gestor " -"llamado *fh*." +"Tenga en cuenta que el código de la 'aplicación' no se preocupa por los " +"gestores múltiples. Todo lo que cambió fue la adición y configuración de un " +"nuevo gestor llamado *fh*." #: ../Doc/howto/logging-cookbook.rst:196 msgid "" -"The ability to create new handlers with higher- or lower-severity filters can be " -"very helpful when writing and testing an application. Instead of using many " -"``print`` statements for debugging, use ``logger.debug``: Unlike the print " -"statements, which you will have to delete or comment out later, the logger.debug " -"statements can remain intact in the source code and remain dormant until you need " -"them again. At that time, the only change that needs to happen is to modify the " -"severity level of the logger and/or handler to debug." -msgstr "" -"La capacidad de crear nuevos gestores con filtros de mayor o menor severidad puede " -"ser muy útil al escribir y probar una aplicación. En lugar de usar muchas " -"declaraciones ``print`` para la depuración, use ``logger.debug``: a diferencia de " -"las declaraciones de impresión, que tendrá que eliminar o comentar más tarde, las " -"declaraciones de *logger.debug* pueden permanecer intactas en el código fuente y " -"permanecen inactivas hasta que las necesite nuevamente. En ese momento, el único " -"cambio que debe realizar es modificar el nivel de prioridad del *logger* y/o gestor " -"para depurar." +"The ability to create new handlers with higher- or lower-severity filters " +"can be very helpful when writing and testing an application. Instead of " +"using many ``print`` statements for debugging, use ``logger.debug``: Unlike " +"the print statements, which you will have to delete or comment out later, " +"the logger.debug statements can remain intact in the source code and remain " +"dormant until you need them again. At that time, the only change that needs " +"to happen is to modify the severity level of the logger and/or handler to " +"debug." +msgstr "" +"La capacidad de crear nuevos gestores con filtros de mayor o menor severidad " +"puede ser muy útil al escribir y probar una aplicación. En lugar de usar " +"muchas declaraciones ``print`` para la depuración, use ``logger.debug``: a " +"diferencia de las declaraciones de impresión, que tendrá que eliminar o " +"comentar más tarde, las declaraciones de *logger.debug* pueden permanecer " +"intactas en el código fuente y permanecen inactivas hasta que las necesite " +"nuevamente. En ese momento, el único cambio que debe realizar es modificar " +"el nivel de prioridad del *logger* y/o gestor para depurar." #: ../Doc/howto/logging-cookbook.rst:207 msgid "Logging to multiple destinations" @@ -155,18 +161,18 @@ msgstr "Logging en múltiples destinos" #: ../Doc/howto/logging-cookbook.rst:209 msgid "" -"Let's say you want to log to console and file with different message formats and in " -"differing circumstances. Say you want to log messages with levels of DEBUG and " -"higher to file, and those messages at level INFO and higher to the console. Let's " -"also assume that the file should contain timestamps, but the console messages should " -"not. Here's how you can achieve this::" +"Let's say you want to log to console and file with different message formats " +"and in differing circumstances. Say you want to log messages with levels of " +"DEBUG and higher to file, and those messages at level INFO and higher to the " +"console. Let's also assume that the file should contain timestamps, but the " +"console messages should not. Here's how you can achieve this::" msgstr "" -"Supongamos que desea que la consola y un archivo tengan diferentes formatos de " -"mensaje y salida de registro para diferentes situaciones. Por ejemplo, desea " -"registrar mensajes con un nivel DEBUG y superiores en un archivo y enviar mensajes " -"con nivel INFO y superior a la consola. Además, suponga que desea grabar una marca " -"de tiempo en el archivo y no imprimirlo en la consola. Puede lograr este " -"comportamiento haciendo lo siguiente::" +"Supongamos que desea que la consola y un archivo tengan diferentes formatos " +"de mensaje y salida de registro para diferentes situaciones. Por ejemplo, " +"desea registrar mensajes con un nivel DEBUG y superiores en un archivo y " +"enviar mensajes con nivel INFO y superior a la consola. Además, suponga que " +"desea grabar una marca de tiempo en el archivo y no imprimirlo en la " +"consola. Puede lograr este comportamiento haciendo lo siguiente::" #: ../Doc/howto/logging-cookbook.rst:247 msgid "When you run this, on the console you will see" @@ -178,8 +184,8 @@ msgstr "y en el archivo verá algo como" #: ../Doc/howto/logging-cookbook.rst:266 msgid "" -"As you can see, the DEBUG message only shows up in the file. The other messages are " -"sent to both destinations." +"As you can see, the DEBUG message only shows up in the file. The other " +"messages are sent to both destinations." msgstr "" "Como se puede ver, el mensaje DEBUG sólo se muestra en el archivo. Los otros " "mensajes se envían a los dos destinos." @@ -189,8 +195,8 @@ msgid "" "This example uses console and file handlers, but you can use any number and " "combination of handlers you choose." msgstr "" -"Este ejemplo usa gestores de consola y archivos, pero puede usar cualquier número y " -"combinación de los gestores que elija." +"Este ejemplo usa gestores de consola y archivos, pero puede usar cualquier " +"número y combinación de los gestores que elija." #: ../Doc/howto/logging-cookbook.rst:274 msgid "Configuration server example" @@ -199,106 +205,113 @@ msgstr "Ejemplo de servidor de configuración" #: ../Doc/howto/logging-cookbook.rst:276 msgid "Here is an example of a module using the logging configuration server::" msgstr "" -"Aquí hay un ejemplo de un módulo que usa el servidor de configuración logging::" +"Aquí hay un ejemplo de un módulo que usa el servidor de configuración " +"logging::" #: ../Doc/howto/logging-cookbook.rst:307 msgid "" -"And here is a script that takes a filename and sends that file to the server, " -"properly preceded with the binary-encoded length, as the new logging configuration::" +"And here is a script that takes a filename and sends that file to the " +"server, properly preceded with the binary-encoded length, as the new logging " +"configuration::" msgstr "" -"Y aquí hay un script que toma un nombre de archivo y envía ese archivo al servidor, " -"precedido adecuadamente con la longitud codificada en binario, como la nueva " -"configuración de logging::" +"Y aquí hay un script que toma un nombre de archivo y envía ese archivo al " +"servidor, precedido adecuadamente con la longitud codificada en binario, " +"como la nueva configuración de logging::" #: ../Doc/howto/logging-cookbook.rst:330 -#, fuzzy msgid "Dealing with handlers that block" msgstr "Tratar con gestores que bloquean" #: ../Doc/howto/logging-cookbook.rst:334 msgid "" -"Sometimes you have to get your logging handlers to do their work without blocking " -"the thread you're logging from. This is common in Web applications, though of course " -"it also occurs in other scenarios." +"Sometimes you have to get your logging handlers to do their work without " +"blocking the thread you're logging from. This is common in Web applications, " +"though of course it also occurs in other scenarios." msgstr "" -"A veces tiene que hacer que sus gestores de registro hagan su trabajo sin bloquear " -"el hilo desde el que está iniciando sesión. Esto es común en las aplicaciones web, " -"aunque, por supuesto, también ocurre en otros escenarios." +"A veces tiene que hacer que sus gestores de registro hagan su trabajo sin " +"bloquear el hilo desde el que está iniciando sesión. Esto es común en las " +"aplicaciones web, aunque, por supuesto, también ocurre en otros escenarios." # -"under the hood": de bajo nivel? más técnicas? #: ../Doc/howto/logging-cookbook.rst:338 msgid "" -"A common culprit which demonstrates sluggish behaviour is the :class:`SMTPHandler`: " -"sending emails can take a long time, for a number of reasons outside the developer's " -"control (for example, a poorly performing mail or network infrastructure). But " -"almost any network-based handler can block: Even a :class:`SocketHandler` operation " -"may do a DNS query under the hood which is too slow (and this query can be deep in " -"the socket library code, below the Python layer, and outside your control)." +"A common culprit which demonstrates sluggish behaviour is the :class:" +"`SMTPHandler`: sending emails can take a long time, for a number of reasons " +"outside the developer's control (for example, a poorly performing mail or " +"network infrastructure). But almost any network-based handler can block: " +"Even a :class:`SocketHandler` operation may do a DNS query under the hood " +"which is too slow (and this query can be deep in the socket library code, " +"below the Python layer, and outside your control)." msgstr "" "Un responsable habitual que ejemplifica un comportamiento lento es la :class:" -"`SMTPHandler`: el envío de correos electrónicos puede llevar mucho tiempo, por " -"varias razones fuera del control del desarrollador (por ejemplo, una infraestructura " -"de red o correo de bajo rendimiento). Pero casi cualquier controlador basado en red " -"puede bloquear: incluso una operación :class:`SocketHandler` puede estar haciendo a " -"bajo nivel una consulta DNS que es demasiado lenta (y esta consulta puede estar en " -"el código de la biblioteca de socket, debajo de la capa de Python, y fuera de su " -"control)." +"`SMTPHandler`: el envío de correos electrónicos puede llevar mucho tiempo, " +"por varias razones fuera del control del desarrollador (por ejemplo, una " +"infraestructura de red o correo de bajo rendimiento). Pero casi cualquier " +"controlador basado en red puede bloquear: incluso una operación :class:" +"`SocketHandler` puede estar haciendo a bajo nivel una consulta DNS que es " +"demasiado lenta (y esta consulta puede estar en el código de la biblioteca " +"de socket, debajo de la capa de Python, y fuera de su control)." #: ../Doc/howto/logging-cookbook.rst:346 msgid "" -"One solution is to use a two-part approach. For the first part, attach only a :class:" -"`QueueHandler` to those loggers which are accessed from performance-critical " -"threads. They simply write to their queue, which can be sized to a large enough " -"capacity or initialized with no upper bound to their size. The write to the queue " -"will typically be accepted quickly, though you will probably need to catch the :exc:" -"`queue.Full` exception as a precaution in your code. If you are a library developer " -"who has performance-critical threads in their code, be sure to document this " -"(together with a suggestion to attach only ``QueueHandlers`` to your loggers) for " -"the benefit of other developers who will use your code." -msgstr "" -"Una solución es utilizar un enfoque de dos partes. Para la primera parte, adjunte " -"solo una :class:`QueueHandler` a los loggers que se acceden desde subprocesos " -"críticos de rendimiento. Simplemente escriben en su cola, que puede dimensionarse a " -"una capacidad lo suficientemente grande o inicializarse sin límite superior a su " -"tamaño. La escritura en la cola generalmente se aceptará rápidamente, aunque es " -"probable que deba atrapar la excepción :exc:`queue.Full` como precaución en su " -"código. Si usted es un desarrollador de bibliotecas que tiene subprocesos críticos " -"de rendimiento en su código, asegúrese de documentar esto (junto con una sugerencia " -"de adjuntar solo ``QueueHandlers`` a sus loggers) para el beneficio de otros " +"One solution is to use a two-part approach. For the first part, attach only " +"a :class:`QueueHandler` to those loggers which are accessed from performance-" +"critical threads. They simply write to their queue, which can be sized to a " +"large enough capacity or initialized with no upper bound to their size. The " +"write to the queue will typically be accepted quickly, though you will " +"probably need to catch the :exc:`queue.Full` exception as a precaution in " +"your code. If you are a library developer who has performance-critical " +"threads in their code, be sure to document this (together with a suggestion " +"to attach only ``QueueHandlers`` to your loggers) for the benefit of other " +"developers who will use your code." +msgstr "" +"Una solución es utilizar un enfoque de dos partes. Para la primera parte, " +"adjunte solo una :class:`QueueHandler` a los loggers que se acceden desde " +"subprocesos críticos de rendimiento. Simplemente escriben en su cola, que " +"puede dimensionarse a una capacidad lo suficientemente grande o " +"inicializarse sin límite superior a su tamaño. La escritura en la cola " +"generalmente se aceptará rápidamente, aunque es probable que deba atrapar la " +"excepción :exc:`queue.Full` como precaución en su código. Si usted es un " +"desarrollador de bibliotecas que tiene subprocesos críticos de rendimiento " +"en su código, asegúrese de documentar esto (junto con una sugerencia de " +"adjuntar solo ``QueueHandlers`` a sus loggers) para el beneficio de otros " "desarrolladores que usarán su código." #: ../Doc/howto/logging-cookbook.rst:357 msgid "" -"The second part of the solution is :class:`QueueListener`, which has been designed " -"as the counterpart to :class:`QueueHandler`. A :class:`QueueListener` is very " -"simple: it's passed a queue and some handlers, and it fires up an internal thread " -"which listens to its queue for LogRecords sent from ``QueueHandlers`` (or any other " -"source of ``LogRecords``, for that matter). The ``LogRecords`` are removed from the " -"queue and passed to the handlers for processing." -msgstr "" -"La segunda parte de la solución es :class:`QueueListener`, que fue designado como la " -"contraparte de :class:`QueueHandler`. Un :class:`QueueListener` es muy simple: ha " -"pasado una cola y algunos gestores, y activa un hilo interno que escucha su cola " -"para *LogRecords* enviados desde ``QueueHandlers`` (o cualquier otra fuente de " -"``LogRecords``, para el caso). Los ``LogRecords`` se eliminan de la cola y se pasan " -"a los gestores para su procesamiento." +"The second part of the solution is :class:`QueueListener`, which has been " +"designed as the counterpart to :class:`QueueHandler`. A :class:" +"`QueueListener` is very simple: it's passed a queue and some handlers, and " +"it fires up an internal thread which listens to its queue for LogRecords " +"sent from ``QueueHandlers`` (or any other source of ``LogRecords``, for that " +"matter). The ``LogRecords`` are removed from the queue and passed to the " +"handlers for processing." +msgstr "" +"La segunda parte de la solución es :class:`QueueListener`, que fue designado " +"como la contraparte de :class:`QueueHandler`. Un :class:`QueueListener` es " +"muy simple: ha pasado una cola y algunos gestores, y activa un hilo interno " +"que escucha su cola para *LogRecords* enviados desde ``QueueHandlers`` (o " +"cualquier otra fuente de ``LogRecords``, para el caso). Los ``LogRecords`` " +"se eliminan de la cola y se pasan a los gestores para su procesamiento." #: ../Doc/howto/logging-cookbook.rst:365 msgid "" -"The advantage of having a separate :class:`QueueListener` class is that you can use " -"the same instance to service multiple ``QueueHandlers``. This is more resource-" -"friendly than, say, having threaded versions of the existing handler classes, which " -"would eat up one thread per handler for no particular benefit." +"The advantage of having a separate :class:`QueueListener` class is that you " +"can use the same instance to service multiple ``QueueHandlers``. This is " +"more resource-friendly than, say, having threaded versions of the existing " +"handler classes, which would eat up one thread per handler for no particular " +"benefit." msgstr "" -"La ventaja de tener una clase separada :class:`QueueListener` es que puede usar la " -"misma instancia para dar servicio a múltiples ``QueueHandlers``. Esto es más " -"amigable con los recursos que, por ejemplo, tener versiones enhebradas de las clases " -"de gestores existentes, que consumirían un hilo por gestor sin ningún beneficio " -"particular." +"La ventaja de tener una clase separada :class:`QueueListener` es que puede " +"usar la misma instancia para dar servicio a múltiples ``QueueHandlers``. " +"Esto es más amigable con los recursos que, por ejemplo, tener versiones " +"enhebradas de las clases de gestores existentes, que consumirían un hilo por " +"gestor sin ningún beneficio particular." #: ../Doc/howto/logging-cookbook.rst:370 msgid "An example of using these two classes follows (imports omitted)::" -msgstr "Un ejemplo del uso de estas dos clases a continuación (se omiten *imports*)::" +msgstr "" +"Un ejemplo del uso de estas dos clases a continuación (se omiten *imports*)::" #: ../Doc/howto/logging-cookbook.rst:388 msgid "which, when run, will produce:" @@ -308,21 +321,23 @@ msgstr "que, cuando se ejecuta, producirá:" #: ../Doc/howto/logging-cookbook.rst:394 #, fuzzy msgid "" -"Prior to Python 3.5, the :class:`QueueListener` always passed every message received " -"from the queue to every handler it was initialized with. (This was because it was " -"assumed that level filtering was all done on the other side, where the queue is " -"filled.) From 3.5 onwards, this behaviour can be changed by passing a keyword " -"argument ``respect_handler_level=True`` to the listener's constructor. When this is " -"done, the listener compares the level of each message with the handler's level, and " -"only passes a message to a handler if it's appropriate to do so." -msgstr "" -"Antes de Python 3.5, :class:`QueueListener` siempre pasaba cada mensaje recibido de " -"la cola a cada gestor con el que se inicializaba. (Esto se debió a que se asumió que " -"el filtrado de nivel se realizó en el otro lado, donde se llena la cola). A partir " -"de 3.5, este comportamiento se puede cambiar pasando un argumento de palabra clave " -"``respect_handler_level=True`` al constructor del oyente . Cuando se hace esto, el " -"oyente compara el nivel de cada mensaje con el nivel del controlador, y solo pasa un " -"mensaje a un controlador si es apropiado hacerlo." +"Prior to Python 3.5, the :class:`QueueListener` always passed every message " +"received from the queue to every handler it was initialized with. (This was " +"because it was assumed that level filtering was all done on the other side, " +"where the queue is filled.) From 3.5 onwards, this behaviour can be changed " +"by passing a keyword argument ``respect_handler_level=True`` to the " +"listener's constructor. When this is done, the listener compares the level " +"of each message with the handler's level, and only passes a message to a " +"handler if it's appropriate to do so." +msgstr "" +"Antes de Python 3.5, :class:`QueueListener` siempre pasaba cada mensaje " +"recibido de la cola a cada gestor con el que se inicializaba. (Esto se debió " +"a que se asumió que el filtrado de nivel se realizó en el otro lado, donde " +"se llena la cola). A partir de 3.5, este comportamiento se puede cambiar " +"pasando un argumento de palabra clave ``respect_handler_level=True`` al " +"constructor del oyente . Cuando se hace esto, el oyente compara el nivel de " +"cada mensaje con el nivel del controlador, y solo pasa un mensaje a un " +"controlador si es apropiado hacerlo." #: ../Doc/howto/logging-cookbook.rst:407 msgid "Sending and receiving logging events across a network" @@ -332,42 +347,45 @@ msgstr "Enviar y recibir eventos logging a través de una red" #: ../Doc/howto/logging-cookbook.rst:409 #, fuzzy msgid "" -"Let's say you want to send logging events across a network, and handle them at the " -"receiving end. A simple way of doing this is attaching a :class:`SocketHandler` " -"instance to the root logger at the sending end::" +"Let's say you want to send logging events across a network, and handle them " +"at the receiving end. A simple way of doing this is attaching a :class:" +"`SocketHandler` instance to the root logger at the sending end::" msgstr "" -"Supongamos que desea enviar eventos logging a través de una red y gestionarlos en el " -"extremo receptor. Una forma sencilla de hacer esto es adjuntar una instancia de :" -"class:`SocketHandler` al logger raíz en el extremo final del envío::" +"Supongamos que desea enviar eventos logging a través de una red y " +"gestionarlos en el extremo receptor. Una forma sencilla de hacer esto es " +"adjuntar una instancia de :class:`SocketHandler` al logger raíz en el " +"extremo final del envío::" #: ../Doc/howto/logging-cookbook.rst:437 msgid "" -"At the receiving end, you can set up a receiver using the :mod:`socketserver` " -"module. Here is a basic working example::" +"At the receiving end, you can set up a receiver using the :mod:" +"`socketserver` module. Here is a basic working example::" msgstr "" "En el extremo receptor, puede configurar un receptor usando el módulo :mod:" "`socketserver`. Aquí hay un ejemplo básico de trabajo:" #: ../Doc/howto/logging-cookbook.rst:525 msgid "" -"First run the server, and then the client. On the client side, nothing is printed on " -"the console; on the server side, you should see something like:" +"First run the server, and then the client. On the client side, nothing is " +"printed on the console; on the server side, you should see something like:" msgstr "" -"Primero ejecuta el servidor, y luego el cliente. Del lado del cliente, nada se " -"imprime en la consola; del lado del servidor, se debería ver algo como esto:" +"Primero ejecuta el servidor, y luego el cliente. Del lado del cliente, nada " +"se imprime en la consola; del lado del servidor, se debería ver algo como " +"esto:" #: ../Doc/howto/logging-cookbook.rst:537 msgid "" -"Note that there are some security issues with pickle in some scenarios. If these " -"affect you, you can use an alternative serialization scheme by overriding the :meth:" -"`~handlers.SocketHandler.makePickle` method and implementing your alternative there, " -"as well as adapting the above script to use your alternative serialization." +"Note that there are some security issues with pickle in some scenarios. If " +"these affect you, you can use an alternative serialization scheme by " +"overriding the :meth:`~handlers.SocketHandler.makePickle` method and " +"implementing your alternative there, as well as adapting the above script to " +"use your alternative serialization." msgstr "" -"Tenga en cuenta que existen algunos problemas de seguridad con pickle en algunos " -"escenarios. Si estos le afectan, puede usar un esquema de serialización alternativo " -"anulando el método :meth:`~ handlers.SocketHandler.makePickle` e implementando su " -"alternativa allí, así como adaptar el script anterior para usar su serialización " -"alternativa." +"Tenga en cuenta que existen algunos problemas de seguridad con pickle en " +"algunos escenarios. Si estos le afectan, puede usar un esquema de " +"serialización alternativo anulando el método :meth:`~ handlers.SocketHandler." +"makePickle` e implementando su alternativa allí, así como adaptar el script " +"anterior para usar su serialización alternativa." #: ../Doc/howto/logging-cookbook.rst:547 msgid "Adding contextual information to your logging output" @@ -376,30 +394,32 @@ msgstr "Agregar información contextual a su salida de logging" # no estoy seguro de la parte "se liberan de memoria via recolector de basura". En la wikipedia en español lo llaman así. "se liberan de memoria" es una agregado mío. #: ../Doc/howto/logging-cookbook.rst:549 msgid "" -"Sometimes you want logging output to contain contextual information in addition to " -"the parameters passed to the logging call. For example, in a networked application, " -"it may be desirable to log client-specific information in the log (e.g. remote " -"client's username, or IP address). Although you could use the *extra* parameter to " -"achieve this, it's not always convenient to pass the information in this way. While " -"it might be tempting to create :class:`Logger` instances on a per-connection basis, " -"this is not a good idea because these instances are not garbage collected. While " -"this is not a problem in practice, when the number of :class:`Logger` instances is " -"dependent on the level of granularity you want to use in logging an application, it " -"could be hard to manage if the number of :class:`Logger` instances becomes " -"effectively unbounded." -msgstr "" -"A veces, desea que la salida de registro contenga información contextual además de " -"los parámetros pasados ​​a la llamada del logging. Por ejemplo, en una aplicación en " -"red, puede ser conveniente registrar información específica del cliente en el " -"registro (por ejemplo, el nombre de usuario del cliente remoto o la dirección IP). " -"Aunque puede usar el parámetro *extra* para lograr esto, no siempre es conveniente " -"pasar la información de esta manera. Si bien puede resultar tentador crear " -"instancias :class:`Logger` por conexión, esta no es una buena idea porque estas " -"instancias no se liberan de memoria vía recolector de basura (*garbage collector*). " -"Si bien esto no es un problema en la práctica, cuando el número de instancias de :" -"class:`Logger` depende del nivel de granularidad que desea usar para registrar una " -"aplicación, podría ser difícil de administrar si el número de instancias :class:" -"`Logger` se vuelven efectivamente ilimitadas." +"Sometimes you want logging output to contain contextual information in " +"addition to the parameters passed to the logging call. For example, in a " +"networked application, it may be desirable to log client-specific " +"information in the log (e.g. remote client's username, or IP address). " +"Although you could use the *extra* parameter to achieve this, it's not " +"always convenient to pass the information in this way. While it might be " +"tempting to create :class:`Logger` instances on a per-connection basis, this " +"is not a good idea because these instances are not garbage collected. While " +"this is not a problem in practice, when the number of :class:`Logger` " +"instances is dependent on the level of granularity you want to use in " +"logging an application, it could be hard to manage if the number of :class:" +"`Logger` instances becomes effectively unbounded." +msgstr "" +"A veces, desea que la salida de registro contenga información contextual " +"además de los parámetros pasados ​​a la llamada del logging. Por ejemplo, en " +"una aplicación en red, puede ser conveniente registrar información " +"específica del cliente en el registro (por ejemplo, el nombre de usuario del " +"cliente remoto o la dirección IP). Aunque puede usar el parámetro *extra* " +"para lograr esto, no siempre es conveniente pasar la información de esta " +"manera. Si bien puede resultar tentador crear instancias :class:`Logger` por " +"conexión, esta no es una buena idea porque estas instancias no se liberan de " +"memoria vía recolector de basura (*garbage collector*). Si bien esto no es " +"un problema en la práctica, cuando el número de instancias de :class:" +"`Logger` depende del nivel de granularidad que desea usar para registrar una " +"aplicación, podría ser difícil de administrar si el número de instancias :" +"class:`Logger` se vuelven efectivamente ilimitadas." #: ../Doc/howto/logging-cookbook.rst:564 msgid "Using LoggerAdapters to impart contextual information" @@ -409,75 +429,80 @@ msgstr "Uso de LoggerAdapters para impartir información contextual" #: ../Doc/howto/logging-cookbook.rst:566 #, fuzzy msgid "" -"An easy way in which you can pass contextual information to be output along with " -"logging event information is to use the :class:`LoggerAdapter` class. This class is " -"designed to look like a :class:`Logger`, so that you can call :meth:`debug`, :meth:" -"`info`, :meth:`warning`, :meth:`error`, :meth:`exception`, :meth:`critical` and :" -"meth:`log`. These methods have the same signatures as their counterparts in :class:" -"`Logger`, so you can use the two types of instances interchangeably." -msgstr "" -"Una manera fácil de pasar información contextual para que se genere junto con la " -"información de eventos logging es usar la clase :class:`LoggerAdapter`. Esta clase " -"está diseñada para parecerse a :class:`Logger`, de modo que pueda llamar : meth:" -"`debug`, :meth:`info`, :meth:`warning`, :meth:`error`, :meth:`excepción`, :" -"meth`critical` y :meth:`log`. Estos métodos tienen las mismas características que " -"sus contrapartes en :class:`Logger`, por lo que puede usar los dos tipos de " -"instancias indistintamente." +"An easy way in which you can pass contextual information to be output along " +"with logging event information is to use the :class:`LoggerAdapter` class. " +"This class is designed to look like a :class:`Logger`, so that you can call :" +"meth:`debug`, :meth:`info`, :meth:`warning`, :meth:`error`, :meth:" +"`exception`, :meth:`critical` and :meth:`log`. These methods have the same " +"signatures as their counterparts in :class:`Logger`, so you can use the two " +"types of instances interchangeably." +msgstr "" +"Una manera fácil de pasar información contextual para que se genere junto " +"con la información de eventos logging es usar la clase :class:" +"`LoggerAdapter`. Esta clase está diseñada para parecerse a :class:`Logger`, " +"de modo que pueda llamar : meth:`debug`, :meth:`info`, :meth:`warning`, :" +"meth:`error`, :meth:`excepción`, :meth`critical` y :meth:`log`. Estos " +"métodos tienen las mismas características que sus contrapartes en :class:" +"`Logger`, por lo que puede usar los dos tipos de instancias indistintamente." #: ../Doc/howto/logging-cookbook.rst:574 #, fuzzy msgid "" -"When you create an instance of :class:`LoggerAdapter`, you pass it a :class:`Logger` " -"instance and a dict-like object which contains your contextual information. When you " -"call one of the logging methods on an instance of :class:`LoggerAdapter`, it " -"delegates the call to the underlying instance of :class:`Logger` passed to its " -"constructor, and arranges to pass the contextual information in the delegated call. " -"Here's a snippet from the code of :class:`LoggerAdapter`::" -msgstr "" -"Cuando creas una instancia de :class:`LoggerAdapter`, le pasas una instancia :class:" -"`Logger` y un objeto tipo dict que contiene tu información contextual. Cuando llamas " -"a uno de los métodos logging en una instancia de :class:`LoggerAdapter`, este último " -"delega la llamada a la instancia subyacente de :class:`Logger` pasada a su " -"constructor, y se arregla para pasar la información contextual en la llamada " -"delegada . Aquí hay un fragmento del código de :class:`LoggerAdapter`::" +"When you create an instance of :class:`LoggerAdapter`, you pass it a :class:" +"`Logger` instance and a dict-like object which contains your contextual " +"information. When you call one of the logging methods on an instance of :" +"class:`LoggerAdapter`, it delegates the call to the underlying instance of :" +"class:`Logger` passed to its constructor, and arranges to pass the " +"contextual information in the delegated call. Here's a snippet from the code " +"of :class:`LoggerAdapter`::" +msgstr "" +"Cuando creas una instancia de :class:`LoggerAdapter`, le pasas una " +"instancia :class:`Logger` y un objeto tipo dict que contiene tu información " +"contextual. Cuando llamas a uno de los métodos logging en una instancia de :" +"class:`LoggerAdapter`, este último delega la llamada a la instancia " +"subyacente de :class:`Logger` pasada a su constructor, y se arregla para " +"pasar la información contextual en la llamada delegada . Aquí hay un " +"fragmento del código de :class:`LoggerAdapter`::" #: ../Doc/howto/logging-cookbook.rst:590 msgid "" -"The :meth:`~LoggerAdapter.process` method of :class:`LoggerAdapter` is where the " -"contextual information is added to the logging output. It's passed the message and " -"keyword arguments of the logging call, and it passes back (potentially) modified " -"versions of these to use in the call to the underlying logger. The default " -"implementation of this method leaves the message alone, but inserts an 'extra' key " -"in the keyword argument whose value is the dict-like object passed to the " -"constructor. Of course, if you had passed an 'extra' keyword argument in the call to " -"the adapter, it will be silently overwritten." -msgstr "" -"El método :meth:`~LoggerAdapter.process` de :class:`LoggerAdapter` es donde la " -"información contextual se agrega a la salida del registro. Se pasa el mensaje y los " -"argumentos de palabra clave de la llamada logging, y devuelve versiones " -"(potencialmente) modificadas de estos para usar en la llamada al logging subyacente. " -"La implementación predeterminada de este método deja el mensaje solo, pero inserta " -"una clave 'extra' en el argumento de palabra clave cuyo valor es el objeto tipo dict " -"pasado al constructor. Por supuesto, si ha pasado un argumento de palabra clave " -"'extra' en la llamada al adaptador, se sobrescribirá silenciosamente." +"The :meth:`~LoggerAdapter.process` method of :class:`LoggerAdapter` is where " +"the contextual information is added to the logging output. It's passed the " +"message and keyword arguments of the logging call, and it passes back " +"(potentially) modified versions of these to use in the call to the " +"underlying logger. The default implementation of this method leaves the " +"message alone, but inserts an 'extra' key in the keyword argument whose " +"value is the dict-like object passed to the constructor. Of course, if you " +"had passed an 'extra' keyword argument in the call to the adapter, it will " +"be silently overwritten." +msgstr "" +"El método :meth:`~LoggerAdapter.process` de :class:`LoggerAdapter` es donde " +"la información contextual se agrega a la salida del registro. Se pasa el " +"mensaje y los argumentos de palabra clave de la llamada logging, y devuelve " +"versiones (potencialmente) modificadas de estos para usar en la llamada al " +"logging subyacente. La implementación predeterminada de este método deja el " +"mensaje solo, pero inserta una clave 'extra' en el argumento de palabra " +"clave cuyo valor es el objeto tipo dict pasado al constructor. Por supuesto, " +"si ha pasado un argumento de palabra clave 'extra' en la llamada al " +"adaptador, se sobrescribirá silenciosamente." #: ../Doc/howto/logging-cookbook.rst:599 msgid "" -"The advantage of using 'extra' is that the values in the dict-like object are merged " -"into the :class:`LogRecord` instance's __dict__, allowing you to use customized " -"strings with your :class:`Formatter` instances which know about the keys of the dict-" -"like object. If you need a different method, e.g. if you want to prepend or append " -"the contextual information to the message string, you just need to subclass :class:" -"`LoggerAdapter` and override :meth:`~LoggerAdapter.process` to do what you need. " -"Here is a simple example::" -msgstr "" -"La ventaja de usar 'extra' es que los valores en el objeto dict se combinan en la " -"instancia :class:`LogRecord` __dict__, lo que le permite usar cadenas personalizadas " -"con sus instancias :class:`Formatter` que conocen las claves del objeto dict. Si " -"necesita un método diferente, por ejemplo, si desea anteponer o agregar la " -"información contextual a la cadena del mensaje, solo necesita la subclase :class:" -"`LoggerAdapter` y anular :meth:`~LoggerAdapter.process` para hacer lo que necesita. " -"Aquí hay un ejemplo simple:" +"The advantage of using 'extra' is that the values in the dict-like object " +"are merged into the :class:`LogRecord` instance's __dict__, allowing you to " +"use customized strings with your :class:`Formatter` instances which know " +"about the keys of the dict-like object. If you need a different method, e.g. " +"if you want to prepend or append the contextual information to the message " +"string, you just need to subclass :class:`LoggerAdapter` and override :meth:" +"`~LoggerAdapter.process` to do what you need. Here is a simple example::" +msgstr "" +"La ventaja de usar 'extra' es que los valores en el objeto dict se combinan " +"en la instancia :class:`LogRecord` __dict__, lo que le permite usar cadenas " +"personalizadas con sus instancias :class:`Formatter` que conocen las claves " +"del objeto dict. Si necesita un método diferente, por ejemplo, si desea " +"anteponer o agregar la información contextual a la cadena del mensaje, solo " +"necesita la subclase :class:`LoggerAdapter` y anular :meth:`~LoggerAdapter." +"process` para hacer lo que necesita. Aquí hay un ejemplo simple:" #: ../Doc/howto/logging-cookbook.rst:615 msgid "which you can use like this::" @@ -485,8 +510,8 @@ msgstr "que puede usar así::" #: ../Doc/howto/logging-cookbook.rst:620 msgid "" -"Then any events that you log to the adapter will have the value of ``some_conn_id`` " -"prepended to the log messages." +"Then any events that you log to the adapter will have the value of " +"``some_conn_id`` prepended to the log messages." msgstr "" "Luego, cualquier evento que registre en el adaptador tendrá el valor de " "``some_conn_id`` antepuesto a los mensajes de registro." @@ -494,19 +519,22 @@ msgstr "" #: ../Doc/howto/logging-cookbook.rst:624 msgid "Using objects other than dicts to pass contextual information" msgstr "" -"Usar objetos distintos a los diccionarios para transmitir información contextual" +"Usar objetos distintos a los diccionarios para transmitir información " +"contextual" #: ../Doc/howto/logging-cookbook.rst:626 msgid "" -"You don't need to pass an actual dict to a :class:`LoggerAdapter` - you could pass " -"an instance of a class which implements ``__getitem__`` and ``__iter__`` so that it " -"looks like a dict to logging. This would be useful if you want to generate values " -"dynamically (whereas the values in a dict would be constant)." +"You don't need to pass an actual dict to a :class:`LoggerAdapter` - you " +"could pass an instance of a class which implements ``__getitem__`` and " +"``__iter__`` so that it looks like a dict to logging. This would be useful " +"if you want to generate values dynamically (whereas the values in a dict " +"would be constant)." msgstr "" -"No es necesario pasar un diccionario real a la :class:`LoggerAdapter` - puedes pasar " -"una instancia de una clase que implemente ``__getitem__`` y ``__iter__`` de modo que " -"parezca un diccionario para el logging. Esto es útil si quieres generar valores " -"dinámicamente (mientras que los valores en un diccionario son constantes)." +"No es necesario pasar un diccionario real a la :class:`LoggerAdapter` - " +"puedes pasar una instancia de una clase que implemente ``__getitem__`` y " +"``__iter__`` de modo que parezca un diccionario para el logging. Esto es " +"útil si quieres generar valores dinámicamente (mientras que los valores en " +"un diccionario son constantes)." #: ../Doc/howto/logging-cookbook.rst:635 msgid "Using Filters to impart contextual information" @@ -514,35 +542,39 @@ msgstr "Usar filtros para impartir información contextual" #: ../Doc/howto/logging-cookbook.rst:637 msgid "" -"You can also add contextual information to log output using a user-defined :class:" -"`Filter`. ``Filter`` instances are allowed to modify the ``LogRecords`` passed to " -"them, including adding additional attributes which can then be output using a " -"suitable format string, or if needed a custom :class:`Formatter`." +"You can also add contextual information to log output using a user-defined :" +"class:`Filter`. ``Filter`` instances are allowed to modify the " +"``LogRecords`` passed to them, including adding additional attributes which " +"can then be output using a suitable format string, or if needed a custom :" +"class:`Formatter`." msgstr "" -"También puedes agregar información contextual a la salida del registro utilizando " -"un :class:`Filter` definido por el usuario. Las instancias de ``Filter`` pueden " -"modificar los ``LogRecords`` que se les pasan, incluido el agregado de atributos " -"adicionales que luego se pueden generar utilizando cadena de caracteres con el " -"formato adecuado, o si es necesario, un :class:`Formatter` personalizado." +"También puedes agregar información contextual a la salida del registro " +"utilizando un :class:`Filter` definido por el usuario. Las instancias de " +"``Filter`` pueden modificar los ``LogRecords`` que se les pasan, incluido el " +"agregado de atributos adicionales que luego se pueden generar utilizando " +"cadena de caracteres con el formato adecuado, o si es necesario, un :class:" +"`Formatter` personalizado." #: ../Doc/howto/logging-cookbook.rst:642 msgid "" -"For example in a web application, the request being processed (or at least, the " -"interesting parts of it) can be stored in a threadlocal (:class:`threading.local`) " -"variable, and then accessed from a ``Filter`` to add, say, information from the " -"request - say, the remote IP address and remote user's username - to the " -"``LogRecord``, using the attribute names 'ip' and 'user' as in the ``LoggerAdapter`` " -"example above. In that case, the same format string can be used to get similar " -"output to that shown above. Here's an example script::" -msgstr "" -"Por ejemplo, en una aplicación web, la solicitud que se está procesando (o al menos, " -"las partes interesantes de la misma) se pueden almacenar en una variable " -"*threadlocal* (:class:`threading.local`) y luego se puede acceder a ella desde " -"``Filter`` para agregar información de la solicitud, - digamos, la dirección IP " -"remota y el nombre de usuario-, al ``LogRecord``, usando los nombres de atributo " -"'ip' y 'user' como en el ejemplo anterior de ``LoggerAdapter``. En ese caso, se " -"puede usar el mismo formato de cadena de caracteres para obtener un resultado " -"similar al que se muestra arriba. Aquí hay un script de ejemplo::" +"For example in a web application, the request being processed (or at least, " +"the interesting parts of it) can be stored in a threadlocal (:class:" +"`threading.local`) variable, and then accessed from a ``Filter`` to add, " +"say, information from the request - say, the remote IP address and remote " +"user's username - to the ``LogRecord``, using the attribute names 'ip' and " +"'user' as in the ``LoggerAdapter`` example above. In that case, the same " +"format string can be used to get similar output to that shown above. Here's " +"an example script::" +msgstr "" +"Por ejemplo, en una aplicación web, la solicitud que se está procesando (o " +"al menos, las partes interesantes de la misma) se pueden almacenar en una " +"variable *threadlocal* (:class:`threading.local`) y luego se puede acceder a " +"ella desde ``Filter`` para agregar información de la solicitud, - digamos, " +"la dirección IP remota y el nombre de usuario-, al ``LogRecord``, usando los " +"nombres de atributo 'ip' y 'user' como en el ejemplo anterior de " +"``LoggerAdapter``. En ese caso, se puede usar el mismo formato de cadena de " +"caracteres para obtener un resultado similar al que se muestra arriba. Aquí " +"hay un script de ejemplo::" #: ../Doc/howto/logging-cookbook.rst:688 msgid "which, when run, produces something like:" @@ -556,94 +588,99 @@ msgstr "Logging a un sólo archivo desde múltiples procesos" # No tengo claro cómo es todo el tema de socket y si está bien traducido "socket server", "working socket". #: ../Doc/howto/logging-cookbook.rst:711 msgid "" -"Although logging is thread-safe, and logging to a single file from multiple threads " -"in a single process *is* supported, logging to a single file from *multiple " -"processes* is *not* supported, because there is no standard way to serialize access " -"to a single file across multiple processes in Python. If you need to log to a single " -"file from multiple processes, one way of doing this is to have all the processes log " -"to a :class:`~handlers.SocketHandler`, and have a separate process which implements " -"a socket server which reads from the socket and logs to file. (If you prefer, you " -"can dedicate one thread in one of the existing processes to perform this function.) :" -"ref:`This section ` documents this approach in more detail and " -"includes a working socket receiver which can be used as a starting point for you to " -"adapt in your own applications." +"Although logging is thread-safe, and logging to a single file from multiple " +"threads in a single process *is* supported, logging to a single file from " +"*multiple processes* is *not* supported, because there is no standard way to " +"serialize access to a single file across multiple processes in Python. If " +"you need to log to a single file from multiple processes, one way of doing " +"this is to have all the processes log to a :class:`~handlers.SocketHandler`, " +"and have a separate process which implements a socket server which reads " +"from the socket and logs to file. (If you prefer, you can dedicate one " +"thread in one of the existing processes to perform this function.) :ref:" +"`This section ` documents this approach in more detail and " +"includes a working socket receiver which can be used as a starting point for " +"you to adapt in your own applications." msgstr "" "Aunque logging es seguro para subprocesos, y logging a un solo archivo desde " -"múltiples subprocesos en un solo proceso *es* compatible, el registro en un solo " -"archivo desde *múltiples procesos* *no* es compatible, porque no existe una forma " -"estándar de serializar el acceso a un solo archivo en múltiples procesos en Python. " -"Si necesita hacer esto último, una forma de abordarlo es hacer que todos los " -"procesos se registren en una :class:`~handlers.SocketHandler`, y tener un proceso " -"separado que implemente un servidor de socket que lee del socket y los registros " -"para archivar. (Si lo prefiere, puede dedicar un hilo en uno de los procesos " -"existentes para realizar esta función.) :ref: `Esta sección ` " -"documenta este enfoque con más detalle e incluye un receptor socket que funciona que " -"se puede utilizar como punto de partida para que se adapte a sus propias " -"aplicaciones." +"múltiples subprocesos en un solo proceso *es* compatible, el registro en un " +"solo archivo desde *múltiples procesos* *no* es compatible, porque no existe " +"una forma estándar de serializar el acceso a un solo archivo en múltiples " +"procesos en Python. Si necesita hacer esto último, una forma de abordarlo es " +"hacer que todos los procesos se registren en una :class:`~handlers." +"SocketHandler`, y tener un proceso separado que implemente un servidor de " +"socket que lee del socket y los registros para archivar. (Si lo prefiere, " +"puede dedicar un hilo en uno de los procesos existentes para realizar esta " +"función.) :ref:`Esta sección ` documenta este enfoque con " +"más detalle e incluye un receptor socket que funciona que se puede utilizar " +"como punto de partida para que se adapte a sus propias aplicaciones." #: ../Doc/howto/logging-cookbook.rst:724 msgid "" -"You could also write your own handler which uses the :class:`~multiprocessing.Lock` " -"class from the :mod:`multiprocessing` module to serialize access to the file from " -"your processes. The existing :class:`FileHandler` and subclasses do not make use of :" -"mod:`multiprocessing` at present, though they may do so in the future. Note that at " -"present, the :mod:`multiprocessing` module does not provide working lock " -"functionality on all platforms (see https://bugs.python.org/issue3770)." -msgstr "" -"También puedes escribir tu propio gestor que use la clase :class:`~multiprocessing." -"Lock` del módulo :mod:`multiprocessing` para serializar el acceso al archivo desde " -"tus procesos. La existente :class:`FileHandler` y las subclases no hacen uso de :mod:" -"`multiprocessing` en la actualidad, aunque pueden hacerlo en el futuro. Tenga en " -"cuenta que, en la actualidad, el módulo :mod:`multiprocessing` no proporciona la " -"funcionalidad de bloqueo de trabajo en todas las plataformas (ver https://bugs." -"python.org/issue3770)." +"You could also write your own handler which uses the :class:" +"`~multiprocessing.Lock` class from the :mod:`multiprocessing` module to " +"serialize access to the file from your processes. The existing :class:" +"`FileHandler` and subclasses do not make use of :mod:`multiprocessing` at " +"present, though they may do so in the future. Note that at present, the :mod:" +"`multiprocessing` module does not provide working lock functionality on all " +"platforms (see https://bugs.python.org/issue3770)." +msgstr "" +"También puedes escribir tu propio gestor que use la clase :class:" +"`~multiprocessing.Lock` del módulo :mod:`multiprocessing` para serializar el " +"acceso al archivo desde tus procesos. La existente :class:`FileHandler` y " +"las subclases no hacen uso de :mod:`multiprocessing` en la actualidad, " +"aunque pueden hacerlo en el futuro. Tenga en cuenta que, en la actualidad, " +"el módulo :mod:`multiprocessing` no proporciona la funcionalidad de bloqueo " +"de trabajo en todas las plataformas (ver https://bugs.python.org/issue3770)." #: ../Doc/howto/logging-cookbook.rst:734 msgid "" -"Alternatively, you can use a ``Queue`` and a :class:`QueueHandler` to send all " -"logging events to one of the processes in your multi-process application. The " -"following example script demonstrates how you can do this; in the example a separate " -"listener process listens for events sent by other processes and logs them according " -"to its own logging configuration. Although the example only demonstrates one way of " -"doing it (for example, you may want to use a listener thread rather than a separate " -"listener process -- the implementation would be analogous) it does allow for " -"completely different logging configurations for the listener and the other processes " -"in your application, and can be used as the basis for code meeting your own specific " +"Alternatively, you can use a ``Queue`` and a :class:`QueueHandler` to send " +"all logging events to one of the processes in your multi-process " +"application. The following example script demonstrates how you can do this; " +"in the example a separate listener process listens for events sent by other " +"processes and logs them according to its own logging configuration. Although " +"the example only demonstrates one way of doing it (for example, you may want " +"to use a listener thread rather than a separate listener process -- the " +"implementation would be analogous) it does allow for completely different " +"logging configurations for the listener and the other processes in your " +"application, and can be used as the basis for code meeting your own specific " "requirements::" msgstr "" -"Alternativamente, puede usar una ``Queue`` y :class:`QueueHandler` para enviar todos " -"los logging a uno de los procesos en su aplicación multi-proceso. El siguiente " -"script de ejemplo demuestra cómo puede hacer esto; en el ejemplo, un proceso de " -"escucha independiente escucha los eventos enviados por otros procesos y los registra " -"de acuerdo con su propia configuración de registro. Aunque el ejemplo solo demuestra " -"una forma de hacerlo (por ejemplo, es posible que desee utilizar un hilo de escucha " -"en lugar de un proceso de escucha separado; la implementación sería análoga), " -"permite configuraciones de logging completamente diferentes para el oyente y los " -"otros procesos en su aplicación. Y se puede utilizar como base para el código que " -"cumpla con sus propios requisitos específicos::" +"Alternativamente, puede usar una ``Queue`` y :class:`QueueHandler` para " +"enviar todos los logging a uno de los procesos en su aplicación multi-" +"proceso. El siguiente script de ejemplo demuestra cómo puede hacer esto; en " +"el ejemplo, un proceso de escucha independiente escucha los eventos enviados " +"por otros procesos y los registra de acuerdo con su propia configuración de " +"registro. Aunque el ejemplo solo demuestra una forma de hacerlo (por " +"ejemplo, es posible que desee utilizar un hilo de escucha en lugar de un " +"proceso de escucha separado; la implementación sería análoga), permite " +"configuraciones de logging completamente diferentes para el oyente y los " +"otros procesos en su aplicación. Y se puede utilizar como base para el " +"código que cumpla con sus propios requisitos específicos::" #: ../Doc/howto/logging-cookbook.rst:850 msgid "" -"A variant of the above script keeps the logging in the main process, in a separate " -"thread::" +"A variant of the above script keeps the logging in the main process, in a " +"separate thread::" msgstr "" -"Una variante del script anterior mantiene el logging en el proceso principal, en un " -"hilo separado::" +"Una variante del script anterior mantiene el logging en el proceso " +"principal, en un hilo separado::" #: ../Doc/howto/logging-cookbook.rst:945 msgid "" -"This variant shows how you can e.g. apply configuration for particular loggers - e." -"g. the ``foo`` logger has a special handler which stores all events in the ``foo`` " -"subsystem in a file ``mplog-foo.log``. This will be used by the logging machinery in " -"the main process (even though the logging events are generated in the worker " -"processes) to direct the messages to the appropriate destinations." +"This variant shows how you can e.g. apply configuration for particular " +"loggers - e.g. the ``foo`` logger has a special handler which stores all " +"events in the ``foo`` subsystem in a file ``mplog-foo.log``. This will be " +"used by the logging machinery in the main process (even though the logging " +"events are generated in the worker processes) to direct the messages to the " +"appropriate destinations." msgstr "" -"Esta variante muestra cómo puede, por ejemplo, aplicar la configuración para logging " -"particulares: el registrador ``foo`` tiene un gestor especial que almacena todos los " -"eventos en el subsistema ``foo`` en un archivo ``mplog-foo.log``. Esto será " -"utilizado por la maquinaria de registro en el proceso principal (aunque los eventos " -"logging se generen en los procesos de trabajo) para dirigir los mensajes a los " -"destinos apropiados." +"Esta variante muestra cómo puede, por ejemplo, aplicar la configuración para " +"logging particulares: el registrador ``foo`` tiene un gestor especial que " +"almacena todos los eventos en el subsistema ``foo`` en un archivo ``mplog-" +"foo.log``. Esto será utilizado por la maquinaria de registro en el proceso " +"principal (aunque los eventos logging se generen en los procesos de trabajo) " +"para dirigir los mensajes a los destinos apropiados." #: ../Doc/howto/logging-cookbook.rst:952 msgid "Using concurrent.futures.ProcessPoolExecutor" @@ -651,11 +688,13 @@ msgstr "Usando concurrent.futures.ProcessPoolExecutor" #: ../Doc/howto/logging-cookbook.rst:954 msgid "" -"If you want to use :class:`concurrent.futures.ProcessPoolExecutor` to start your " -"worker processes, you need to create the queue slightly differently. Instead of" +"If you want to use :class:`concurrent.futures.ProcessPoolExecutor` to start " +"your worker processes, you need to create the queue slightly differently. " +"Instead of" msgstr "" -"Si desea utilizar :class:`concurrent.futures.ProcessPoolExecutor` para iniciar sus " -"procesos de trabajo, debe crear la cola de manera ligeramente diferente. En vez de" +"Si desea utilizar :class:`concurrent.futures.ProcessPoolExecutor` para " +"iniciar sus procesos de trabajo, debe crear la cola de manera ligeramente " +"diferente. En vez de" #: ../Doc/howto/logging-cookbook.rst:962 msgid "you should use" @@ -677,46 +716,49 @@ msgstr "Usando rotación de archivos" #: ../Doc/howto/logging-cookbook.rst:992 msgid "" -"Sometimes you want to let a log file grow to a certain size, then open a new file " -"and log to that. You may want to keep a certain number of these files, and when that " -"many files have been created, rotate the files so that the number of files and the " -"size of the files both remain bounded. For this usage pattern, the logging package " -"provides a :class:`~handlers.RotatingFileHandler`::" +"Sometimes you want to let a log file grow to a certain size, then open a new " +"file and log to that. You may want to keep a certain number of these files, " +"and when that many files have been created, rotate the files so that the " +"number of files and the size of the files both remain bounded. For this " +"usage pattern, the logging package provides a :class:`~handlers." +"RotatingFileHandler`::" msgstr "" -"A veces, se desea dejar que un archivo de registro crezca hasta cierto tamaño y " -"luego abra un nuevo archivo e inicie sesión en él. Es posible que desee conservar " -"una cierta cantidad de estos archivos, y cuando se hayan creado tantos archivos, " -"rote los archivos para que la cantidad de archivos y el tamaño de los archivos " -"permanezcan limitados. Para este patrón de uso, el paquete logging proporciona :" -"class:`~handlers.RotatingFileHandler`::" +"A veces, se desea dejar que un archivo de registro crezca hasta cierto " +"tamaño y luego abra un nuevo archivo e inicie sesión en él. Es posible que " +"desee conservar una cierta cantidad de estos archivos, y cuando se hayan " +"creado tantos archivos, rote los archivos para que la cantidad de archivos y " +"el tamaño de los archivos permanezcan limitados. Para este patrón de uso, el " +"paquete logging proporciona :class:`~handlers.RotatingFileHandler`::" #: ../Doc/howto/logging-cookbook.rst:1024 msgid "" -"The result should be 6 separate files, each with part of the log history for the " -"application:" +"The result should be 6 separate files, each with part of the log history for " +"the application:" msgstr "" -"El resultado debe ser 6 archivos separados, cada uno con parte del historial de " -"registro de la aplicación:" +"El resultado debe ser 6 archivos separados, cada uno con parte del historial " +"de registro de la aplicación:" #: ../Doc/howto/logging-cookbook.rst:1036 msgid "" -"The most current file is always :file:`logging_rotatingfile_example.out`, and each " -"time it reaches the size limit it is renamed with the suffix ``.1``. Each of the " -"existing backup files is renamed to increment the suffix (``.1`` becomes ``.2``, " -"etc.) and the ``.6`` file is erased." +"The most current file is always :file:`logging_rotatingfile_example.out`, " +"and each time it reaches the size limit it is renamed with the suffix " +"``.1``. Each of the existing backup files is renamed to increment the suffix " +"(``.1`` becomes ``.2``, etc.) and the ``.6`` file is erased." msgstr "" -"El archivo más actual siempre es :file:`logging_rotatingfile_example.out`, y cada " -"vez que alcanza el límite de tamaño, se le cambia el nombre con el sufijo``.1``. Se " -"cambia el nombre de cada uno de los archivos de respaldo existentes para incrementar " -"el sufijo (``.1`` se convierte en ``.2``, etc.) y se borra el archivo ``.6``." +"El archivo más actual siempre es :file:`logging_rotatingfile_example.out`, y " +"cada vez que alcanza el límite de tamaño, se le cambia el nombre con el " +"sufijo``.1``. Se cambia el nombre de cada uno de los archivos de respaldo " +"existentes para incrementar el sufijo (``.1`` se convierte en ``.2``, etc.) " +"y se borra el archivo ``.6``." #: ../Doc/howto/logging-cookbook.rst:1041 msgid "" -"Obviously this example sets the log length much too small as an extreme example. " -"You would want to set *maxBytes* to an appropriate value." +"Obviously this example sets the log length much too small as an extreme " +"example. You would want to set *maxBytes* to an appropriate value." msgstr "" -"Obviamente, este ejemplo establece la longitud del registro demasiado pequeña como " -"un ejemplo extremo. Se querrá establecer *maxBytes* en un valor apropiado." +"Obviamente, este ejemplo establece la longitud del registro demasiado " +"pequeña como un ejemplo extremo. Se querrá establecer *maxBytes* en un valor " +"apropiado." #: ../Doc/howto/logging-cookbook.rst:1047 msgid "Use of alternative formatting styles" @@ -724,158 +766,171 @@ msgstr "Uso de estilos de formato alternativos" #: ../Doc/howto/logging-cookbook.rst:1049 msgid "" -"When logging was added to the Python standard library, the only way of formatting " -"messages with variable content was to use the %-formatting method. Since then, " -"Python has gained two new formatting approaches: :class:`string.Template` (added in " -"Python 2.4) and :meth:`str.format` (added in Python 2.6)." +"When logging was added to the Python standard library, the only way of " +"formatting messages with variable content was to use the %-formatting " +"method. Since then, Python has gained two new formatting approaches: :class:" +"`string.Template` (added in Python 2.4) and :meth:`str.format` (added in " +"Python 2.6)." msgstr "" -"Cuando se agregó logging a la biblioteca estándar de Python, la única forma de " -"formatear mensajes con contenido variable era usar el método de formateo '%'. Desde " -"entonces, Python ha ganado dos nuevos enfoques de formato: :class:`string.Template` " -"(agregado en Python 2.4) y :meth:`str.format` (agregado en Python 2.6)." +"Cuando se agregó logging a la biblioteca estándar de Python, la única forma " +"de formatear mensajes con contenido variable era usar el método de formateo " +"'%'. Desde entonces, Python ha ganado dos nuevos enfoques de formato: :class:" +"`string.Template` (agregado en Python 2.4) y :meth:`str.format` (agregado en " +"Python 2.6)." #: ../Doc/howto/logging-cookbook.rst:1055 msgid "" -"Logging (as of 3.2) provides improved support for these two additional formatting " -"styles. The :class:`Formatter` class been enhanced to take an additional, optional " -"keyword parameter named ``style``. This defaults to ``'%'``, but other possible " -"values are ``'{'`` and ``'$'``, which correspond to the other two formatting styles. " -"Backwards compatibility is maintained by default (as you would expect), but by " -"explicitly specifying a style parameter, you get the ability to specify format " -"strings which work with :meth:`str.format` or :class:`string.Template`. Here's an " -"example console session to show the possibilities:" -msgstr "" -"Logging (a partir de la versión 3.2) proporciona un soporte mejorado para estos dos " -"estilos de formato adicionales. La clase :class:`Formatter` ha sido mejorada para " -"tomar un parámetro de palabra clave adicional llamado ``style``. El valor " -"predeterminado es ``'%'``, pero otros valores posibles son ``'{'`` y ``'$'``, que " -"corresponden a los otros dos estilos de formato. La compatibilidad con versiones " -"anteriores se mantiene de forma predeterminada (como era de esperar), pero al " -"especificar explícitamente un parámetro de estilo, tiene la capacidad de especificar " -"cadenas de formato que funcionan con :meth:`str.format` o :class:`string.Template`. " -"Aquí hay una sesión de consola de ejemplo para mostrar las posibilidades:" +"Logging (as of 3.2) provides improved support for these two additional " +"formatting styles. The :class:`Formatter` class been enhanced to take an " +"additional, optional keyword parameter named ``style``. This defaults to " +"``'%'``, but other possible values are ``'{'`` and ``'$'``, which correspond " +"to the other two formatting styles. Backwards compatibility is maintained by " +"default (as you would expect), but by explicitly specifying a style " +"parameter, you get the ability to specify format strings which work with :" +"meth:`str.format` or :class:`string.Template`. Here's an example console " +"session to show the possibilities:" +msgstr "" +"Logging (a partir de la versión 3.2) proporciona un soporte mejorado para " +"estos dos estilos de formato adicionales. La clase :class:`Formatter` ha " +"sido mejorada para tomar un parámetro de palabra clave adicional llamado " +"``style``. El valor predeterminado es ``'%'``, pero otros valores posibles " +"son ``'{'`` y ``'$'``, que corresponden a los otros dos estilos de formato. " +"La compatibilidad con versiones anteriores se mantiene de forma " +"predeterminada (como era de esperar), pero al especificar explícitamente un " +"parámetro de estilo, tiene la capacidad de especificar cadenas de formato " +"que funcionan con :meth:`str.format` o :class:`string.Template`. Aquí hay " +"una sesión de consola de ejemplo para mostrar las posibilidades:" #: ../Doc/howto/logging-cookbook.rst:1089 msgid "" -"Note that the formatting of logging messages for final output to logs is completely " -"independent of how an individual logging message is constructed. That can still use " -"%-formatting, as shown here::" +"Note that the formatting of logging messages for final output to logs is " +"completely independent of how an individual logging message is constructed. " +"That can still use %-formatting, as shown here::" msgstr "" -"Tenga en cuenta que el formato de logging para la salida final a los registros es " -"completamente independiente de cómo se construye un mensaje de registro individual. " -"Para eso todavía puede usar el formateo \"%\", como se muestra aquí:" +"Tenga en cuenta que el formato de logging para la salida final a los " +"registros es completamente independiente de cómo se construye un mensaje de " +"registro individual. Para eso todavía puede usar el formateo \"%\", como se " +"muestra aquí:" # No entiendo este bloque en inglés ni en español :P #: ../Doc/howto/logging-cookbook.rst:1097 msgid "" -"Logging calls (``logger.debug()``, ``logger.info()`` etc.) only take positional " -"parameters for the actual logging message itself, with keyword parameters used only " -"for determining options for how to handle the actual logging call (e.g. the " -"``exc_info`` keyword parameter to indicate that traceback information should be " -"logged, or the ``extra`` keyword parameter to indicate additional contextual " -"information to be added to the log). So you cannot directly make logging calls " -"using :meth:`str.format` or :class:`string.Template` syntax, because internally the " -"logging package uses %-formatting to merge the format string and the variable " -"arguments. There would be no changing this while preserving backward compatibility, " -"since all logging calls which are out there in existing code will be using %-format " +"Logging calls (``logger.debug()``, ``logger.info()`` etc.) only take " +"positional parameters for the actual logging message itself, with keyword " +"parameters used only for determining options for how to handle the actual " +"logging call (e.g. the ``exc_info`` keyword parameter to indicate that " +"traceback information should be logged, or the ``extra`` keyword parameter " +"to indicate additional contextual information to be added to the log). So " +"you cannot directly make logging calls using :meth:`str.format` or :class:" +"`string.Template` syntax, because internally the logging package uses %-" +"formatting to merge the format string and the variable arguments. There " +"would be no changing this while preserving backward compatibility, since all " +"logging calls which are out there in existing code will be using %-format " "strings." msgstr "" -"Las llamadas de Logging (``logger.debug()``, ``logger.info()``, etc.) solo toman " -"parámetros posicionales para el mensaje de registro real en sí, con parámetros de " -"palabras clave que se usan solo para determinar opciones sobre cómo gestionar la " -"llamada real a Logging (por ejemplo, el parámetro de palabra clave ``exc_info`` para " -"indicar que la información de rastreo debe registrarse, o el parámetro de palabra " -"clave ``extra`` para indicar información contextual adicional que se agregará al " -"registro). Por lo tanto, no puede realizar llamadas de registro directamente usando " -"la sintaxis :meth:`str.format` o :class:`string.Template`, porque internamente el " -"paquete de registro usa formato % para fusionar la cadena de formato y los " -"argumentos de las variables. No habría ningún cambio en esto mientras se conserva la " -"compatibilidad con versiones anteriores, ya que todas las llamadas de registro que " -"están en el código existente usarán cadenas de formato %." +"Las llamadas de Logging (``logger.debug()``, ``logger.info()``, etc.) solo " +"toman parámetros posicionales para el mensaje de registro real en sí, con " +"parámetros de palabras clave que se usan solo para determinar opciones sobre " +"cómo gestionar la llamada real a Logging (por ejemplo, el parámetro de " +"palabra clave ``exc_info`` para indicar que la información de rastreo debe " +"registrarse, o el parámetro de palabra clave ``extra`` para indicar " +"información contextual adicional que se agregará al registro). Por lo tanto, " +"no puede realizar llamadas de registro directamente usando la sintaxis :meth:" +"`str.format` o :class:`string.Template`, porque internamente el paquete de " +"registro usa formato % para fusionar la cadena de formato y los argumentos " +"de las variables. No habría ningún cambio en esto mientras se conserva la " +"compatibilidad con versiones anteriores, ya que todas las llamadas de " +"registro que están en el código existente usarán cadenas de formato %." #: ../Doc/howto/logging-cookbook.rst:1110 msgid "" -"There is, however, a way that you can use {}- and $- formatting to construct your " -"individual log messages. Recall that for a message you can use an arbitrary object " -"as a message format string, and that the logging package will call ``str()`` on that " -"object to get the actual format string. Consider the following two classes::" +"There is, however, a way that you can use {}- and $- formatting to construct " +"your individual log messages. Recall that for a message you can use an " +"arbitrary object as a message format string, and that the logging package " +"will call ``str()`` on that object to get the actual format string. Consider " +"the following two classes::" msgstr "" -"Sin embargo, existe una forma en la que puede usar el formato {} - y $ - para " -"construir sus mensajes de registro individuales. Recuerde que para un mensaje puede " -"usar un objeto arbitrario como una cadena de caracteres de formato de mensaje, y que " -"el paquete logging llamará a ``str()`` en ese objeto para obtener la cadena de " -"caracteres de formato real. Considere las siguientes dos clases::" +"Sin embargo, existe una forma en la que puede usar el formato {} - y $ - " +"para construir sus mensajes de registro individuales. Recuerde que para un " +"mensaje puede usar un objeto arbitrario como una cadena de caracteres de " +"formato de mensaje, y que el paquete logging llamará a ``str()`` en ese " +"objeto para obtener la cadena de caracteres de formato real. Considere las " +"siguientes dos clases::" #: ../Doc/howto/logging-cookbook.rst:1134 msgid "" "Either of these can be used in place of a format string, to allow {}- or $-" -"formatting to be used to build the actual \"message\" part which appears in the " -"formatted log output in place of \"%(message)s\" or \"{message}\" or \"$message\". " -"It's a little unwieldy to use the class names whenever you want to log something, " -"but it's quite palatable if you use an alias such as __ (double underscore --- not " -"to be confused with _, the single underscore used as a synonym/alias for :func:" -"`gettext.gettext` or its brethren)." -msgstr "" -"Cualquiera de estos puede usarse en lugar de una cadena de formato, para permitir " -"que se use el formato {} - o $ - para construir la parte del \"mensaje\" real que " -"aparece en la salida del registro en lugar de \"%(message)s\" o \"{message}\" o " -"\"$message\". Es un poco difícil de manejar usar los nombres de las clases siempre " -"que quieras registrar algo, pero es bastante aceptable si usas un alias como __ " -"(doble subrayado --- no confundir con _, el subrayado simple usado como sinónimo/" -"alias para :func:`gettext.gettext` o sus hermanos)." +"formatting to be used to build the actual \"message\" part which appears in " +"the formatted log output in place of \"%(message)s\" or \"{message}\" or " +"\"$message\". It's a little unwieldy to use the class names whenever you " +"want to log something, but it's quite palatable if you use an alias such as " +"__ (double underscore --- not to be confused with _, the single underscore " +"used as a synonym/alias for :func:`gettext.gettext` or its brethren)." +msgstr "" +"Cualquiera de estos puede usarse en lugar de una cadena de formato, para " +"permitir que se use el formato {} - o $ - para construir la parte del " +"\"mensaje\" real que aparece en la salida del registro en lugar de " +"\"%(message)s\" o \"{message}\" o \"$message\". Es un poco difícil de " +"manejar usar los nombres de las clases siempre que quieras registrar algo, " +"pero es bastante aceptable si usas un alias como __ (doble subrayado --- no " +"confundir con _, el subrayado simple usado como sinónimo/alias para :func:" +"`gettext.gettext` o sus hermanos)." #: ../Doc/howto/logging-cookbook.rst:1142 msgid "" -"The above classes are not included in Python, though they're easy enough to copy and " -"paste into your own code. They can be used as follows (assuming that they're " -"declared in a module called ``wherever``):" +"The above classes are not included in Python, though they're easy enough to " +"copy and paste into your own code. They can be used as follows (assuming " +"that they're declared in a module called ``wherever``):" msgstr "" -"Las clases anteriores no están incluidas en Python, aunque son bastante fáciles de " -"copiar y pegar en su propio código. Se pueden usar de la siguiente manera (asumiendo " -"que están declaradas en un módulo llamado ``wherever``):" +"Las clases anteriores no están incluidas en Python, aunque son bastante " +"fáciles de copiar y pegar en su propio código. Se pueden usar de la " +"siguiente manera (asumiendo que están declaradas en un módulo llamado " +"``wherever``):" #: ../Doc/howto/logging-cookbook.rst:1164 msgid "" -"While the above examples use ``print()`` to show how the formatting works, you would " -"of course use ``logger.debug()`` or similar to actually log using this approach." +"While the above examples use ``print()`` to show how the formatting works, " +"you would of course use ``logger.debug()`` or similar to actually log using " +"this approach." msgstr "" -"Si bien los ejemplos anteriores usan ``print()`` para mostrar cómo funciona el " -"formateo, por supuesto usaría ``logger.debug()`` o similar para realmente registrar " -"usando este enfoque." +"Si bien los ejemplos anteriores usan ``print()`` para mostrar cómo funciona " +"el formateo, por supuesto usaría ``logger.debug()`` o similar para realmente " +"registrar usando este enfoque." #: ../Doc/howto/logging-cookbook.rst:1168 msgid "" -"One thing to note is that you pay no significant performance penalty with this " -"approach: the actual formatting happens not when you make the logging call, but when " -"(and if) the logged message is actually about to be output to a log by a handler. So " -"the only slightly unusual thing which might trip you up is that the parentheses go " -"around the format string and the arguments, not just the format string. That's " -"because the __ notation is just syntax sugar for a constructor call to one of the " -"XXXMessage classes." +"One thing to note is that you pay no significant performance penalty with " +"this approach: the actual formatting happens not when you make the logging " +"call, but when (and if) the logged message is actually about to be output to " +"a log by a handler. So the only slightly unusual thing which might trip you " +"up is that the parentheses go around the format string and the arguments, " +"not just the format string. That's because the __ notation is just syntax " +"sugar for a constructor call to one of the XXXMessage classes." msgstr "" "Una cosa a tener en cuenta es que no paga una penalización de rendimiento " -"significativa con este enfoque: el formateo real no ocurre cuando realiza la llamada " -"a logging, sino cuando (y si) el mensaje registrado está a punto de ser enviado a un " -"registro por un gestor. Entonces, lo único un poco inusual que podría confundirte es " -"que los paréntesis rodean la cadena de formato y los argumentos, no solo la cadena " -"de formato. Eso es porque la notación __ es solo azúcar sintáctico para una llamada " -"de constructor a una de las clases XXXMessage." +"significativa con este enfoque: el formateo real no ocurre cuando realiza la " +"llamada a logging, sino cuando (y si) el mensaje registrado está a punto de " +"ser enviado a un registro por un gestor. Entonces, lo único un poco inusual " +"que podría confundirte es que los paréntesis rodean la cadena de formato y " +"los argumentos, no solo la cadena de formato. Eso es porque la notación __ " +"es solo azúcar sintáctico para una llamada de constructor a una de las " +"clases XXXMessage." #: ../Doc/howto/logging-cookbook.rst:1176 msgid "" -"If you prefer, you can use a :class:`LoggerAdapter` to achieve a similar effect to " -"the above, as in the following example::" +"If you prefer, you can use a :class:`LoggerAdapter` to achieve a similar " +"effect to the above, as in the following example::" msgstr "" -"Si lo prefiere, puede usar :class:`LoggerAdapter` para lograr un efecto similar al " -"anterior, como en el siguiente ejemplo::" +"Si lo prefiere, puede usar :class:`LoggerAdapter` para lograr un efecto " +"similar al anterior, como en el siguiente ejemplo::" #: ../Doc/howto/logging-cookbook.rst:1207 msgid "" -"The above script should log the message ``Hello, world!`` when run with Python 3.2 " -"or later." +"The above script should log the message ``Hello, world!`` when run with " +"Python 3.2 or later." msgstr "" -"El script anterior debería registrar el mensaje ``Hello, world!`` Cuando se ejecuta " -"con Python 3.2 o posterior." +"El script anterior debería registrar el mensaje ``Hello, world!`` Cuando se " +"ejecuta con Python 3.2 o posterior." #: ../Doc/howto/logging-cookbook.rst:1216 msgid "Customizing ``LogRecord``" @@ -883,152 +938,162 @@ msgstr "Personalización de ``LogRecord``" #: ../Doc/howto/logging-cookbook.rst:1218 msgid "" -"Every logging event is represented by a :class:`LogRecord` instance. When an event " -"is logged and not filtered out by a logger's level, a :class:`LogRecord` is created, " -"populated with information about the event and then passed to the handlers for that " -"logger (and its ancestors, up to and including the logger where further propagation " -"up the hierarchy is disabled). Before Python 3.2, there were only two places where " -"this creation was done:" -msgstr "" -"Cada evento logging está representado por una instancia :class:`LogRecord`. Cuando " -"se registra un evento y no se filtra por el nivel de un registrador, se crea :class:" -"`LogRecord`, se llena con información sobre el evento y luego se pasa a los gestores " -"de ese registrador (y sus antepasados, hasta (e incluyéndolo) el registrador donde " -"se deshabilita una mayor propagación en la jerarquía). Antes de Python 3.2, solo " -"había dos lugares donde se realizaba esta creación:" +"Every logging event is represented by a :class:`LogRecord` instance. When an " +"event is logged and not filtered out by a logger's level, a :class:" +"`LogRecord` is created, populated with information about the event and then " +"passed to the handlers for that logger (and its ancestors, up to and " +"including the logger where further propagation up the hierarchy is " +"disabled). Before Python 3.2, there were only two places where this creation " +"was done:" +msgstr "" +"Cada evento logging está representado por una instancia :class:`LogRecord`. " +"Cuando se registra un evento y no se filtra por el nivel de un registrador, " +"se crea :class:`LogRecord`, se llena con información sobre el evento y luego " +"se pasa a los gestores de ese registrador (y sus antepasados, hasta (e " +"incluyéndolo) el registrador donde se deshabilita una mayor propagación en " +"la jerarquía). Antes de Python 3.2, solo había dos lugares donde se " +"realizaba esta creación:" #: ../Doc/howto/logging-cookbook.rst:1225 msgid "" -":meth:`Logger.makeRecord`, which is called in the normal process of logging an " -"event. This invoked :class:`LogRecord` directly to create an instance." +":meth:`Logger.makeRecord`, which is called in the normal process of logging " +"an event. This invoked :class:`LogRecord` directly to create an instance." msgstr "" -":meth:`Logger.makeRecord`, que se llama en el proceso normal de registro de un " -"evento. Esto invoca :class:`LogRecord` directamente para crear una instancia." +":meth:`Logger.makeRecord`, que se llama en el proceso normal de registro de " +"un evento. Esto invoca :class:`LogRecord` directamente para crear una " +"instancia." #: ../Doc/howto/logging-cookbook.rst:1228 msgid "" -":func:`makeLogRecord`, which is called with a dictionary containing attributes to be " -"added to the LogRecord. This is typically invoked when a suitable dictionary has " -"been received over the network (e.g. in pickle form via a :class:`~handlers." -"SocketHandler`, or in JSON form via an :class:`~handlers.HTTPHandler`)." +":func:`makeLogRecord`, which is called with a dictionary containing " +"attributes to be added to the LogRecord. This is typically invoked when a " +"suitable dictionary has been received over the network (e.g. in pickle form " +"via a :class:`~handlers.SocketHandler`, or in JSON form via an :class:" +"`~handlers.HTTPHandler`)." msgstr "" -":func:`makeLogRecord`, que se llama con un diccionario que contiene atributos que se " -"agregarán al *LogRecord*. Esto se suele invocar cuando se ha recibido un diccionario " -"adecuado a través de la red (por ejemplo, en forma de *pickle* a través de :class:" -"`~handlers.SocketHandler`, o en formato JSON a través de :class:`~handlers." -"HTTPHandler`)." +":func:`makeLogRecord`, que se llama con un diccionario que contiene " +"atributos que se agregarán al *LogRecord*. Esto se suele invocar cuando se " +"ha recibido un diccionario adecuado a través de la red (por ejemplo, en " +"forma de *pickle* a través de :class:`~handlers.SocketHandler`, o en formato " +"JSON a través de :class:`~handlers.HTTPHandler`)." #: ../Doc/howto/logging-cookbook.rst:1234 msgid "" "This has usually meant that if you need to do anything special with a :class:" "`LogRecord`, you've had to do one of the following." msgstr "" -"Por lo general, esto significa que si necesita hacer algo especial con :class:" -"`LogRecord`, debe hacer una de las siguientes cosas." +"Por lo general, esto significa que si necesita hacer algo especial con :" +"class:`LogRecord`, debe hacer una de las siguientes cosas." #: ../Doc/howto/logging-cookbook.rst:1237 msgid "" -"Create your own :class:`Logger` subclass, which overrides :meth:`Logger.makeRecord`, " -"and set it using :func:`~logging.setLoggerClass` before any loggers that you care " -"about are instantiated." +"Create your own :class:`Logger` subclass, which overrides :meth:`Logger." +"makeRecord`, and set it using :func:`~logging.setLoggerClass` before any " +"loggers that you care about are instantiated." msgstr "" -"Cree su propia subclase :class:`Logger`, que anula :meth:`Logger.makeRecord`, y " -"configúrelo usando :func:`~logging.setLoggerClass` antes de que se creen instancias " -"de los registradores que le interesan." +"Cree su propia subclase :class:`Logger`, que anula :meth:`Logger." +"makeRecord`, y configúrelo usando :func:`~logging.setLoggerClass` antes de " +"que se creen instancias de los registradores que le interesan." #: ../Doc/howto/logging-cookbook.rst:1240 msgid "" -"Add a :class:`Filter` to a logger or handler, which does the necessary special " -"manipulation you need when its :meth:`~Filter.filter` method is called." +"Add a :class:`Filter` to a logger or handler, which does the necessary " +"special manipulation you need when its :meth:`~Filter.filter` method is " +"called." msgstr "" -"Agrega un :class:`Filter` a un registrador o gestor, que realiza la manipulación " -"especial necesaria que necesita cuando se llama a su método :meth:`~Filter.filter`." +"Agrega un :class:`Filter` a un registrador o gestor, que realiza la " +"manipulación especial necesaria que necesita cuando se llama a su método :" +"meth:`~Filter.filter`." #: ../Doc/howto/logging-cookbook.rst:1244 msgid "" -"The first approach would be a little unwieldy in the scenario where (say) several " -"different libraries wanted to do different things. Each would attempt to set its " -"own :class:`Logger` subclass, and the one which did this last would win." +"The first approach would be a little unwieldy in the scenario where (say) " +"several different libraries wanted to do different things. Each would " +"attempt to set its own :class:`Logger` subclass, and the one which did this " +"last would win." msgstr "" "El primer enfoque sería un poco difícil de manejar en el escenario en el que " -"(digamos) varias bibliotecas diferentes quisieran hacer cosas diferentes. Cada uno " -"intentaría establecer su propia subclase :class:`Logger`, y el que hiciera esto " -"último ganaría." +"(digamos) varias bibliotecas diferentes quisieran hacer cosas diferentes. " +"Cada uno intentaría establecer su propia subclase :class:`Logger`, y el que " +"hiciera esto último ganaría." #: ../Doc/howto/logging-cookbook.rst:1249 msgid "" -"The second approach works reasonably well for many cases, but does not allow you to " -"e.g. use a specialized subclass of :class:`LogRecord`. Library developers can set a " -"suitable filter on their loggers, but they would have to remember to do this every " -"time they introduced a new logger (which they would do simply by adding new packages " -"or modules and doing ::" +"The second approach works reasonably well for many cases, but does not allow " +"you to e.g. use a specialized subclass of :class:`LogRecord`. Library " +"developers can set a suitable filter on their loggers, but they would have " +"to remember to do this every time they introduced a new logger (which they " +"would do simply by adding new packages or modules and doing ::" msgstr "" -"El segundo enfoque funciona razonablemente bien en muchos casos, pero no le permite, " -"por ejemplo, usar una subclase especializada de :class:`LogRecord`. Los " -"desarrolladores de bibliotecas pueden establecer un filtro adecuado en sus " -"registradores, pero tendrían que recordar hacerlo cada vez que introduzcan un nuevo " -"registrador (lo que harían simplemente agregando nuevos paquetes o módulos y " -"haciendo ::" +"El segundo enfoque funciona razonablemente bien en muchos casos, pero no le " +"permite, por ejemplo, usar una subclase especializada de :class:`LogRecord`. " +"Los desarrolladores de bibliotecas pueden establecer un filtro adecuado en " +"sus registradores, pero tendrían que recordar hacerlo cada vez que " +"introduzcan un nuevo registrador (lo que harían simplemente agregando nuevos " +"paquetes o módulos y haciendo ::" #: ../Doc/howto/logging-cookbook.rst:1257 msgid "" -"at module level). It's probably one too many things to think about. Developers could " -"also add the filter to a :class:`~logging.NullHandler` attached to their top-level " -"logger, but this would not be invoked if an application developer attached a handler " -"to a lower-level library logger --- so output from that handler would not reflect " -"the intentions of the library developer." +"at module level). It's probably one too many things to think about. " +"Developers could also add the filter to a :class:`~logging.NullHandler` " +"attached to their top-level logger, but this would not be invoked if an " +"application developer attached a handler to a lower-level library logger --- " +"so output from that handler would not reflect the intentions of the library " +"developer." msgstr "" -"a nivel de módulo). Probablemente sean demasiadas cosas en las que pensar. Los " -"desarrolladores también podrían agregar el filtro a :class:`~logging.NullHandler` " -"adjunto a su registrador de nivel superior, pero esto no se invocaría si un " -"desarrollador de aplicaciones adjuntara un controlador a un registrador de " -"biblioteca de nivel inferior --- así que la salida de ese gestor no reflejaría las " -"intenciones del desarrollador de la biblioteca." +"a nivel de módulo). Probablemente sean demasiadas cosas en las que pensar. " +"Los desarrolladores también podrían agregar el filtro a :class:`~logging." +"NullHandler` adjunto a su registrador de nivel superior, pero esto no se " +"invocaría si un desarrollador de aplicaciones adjuntara un controlador a un " +"registrador de biblioteca de nivel inferior --- así que la salida de ese " +"gestor no reflejaría las intenciones del desarrollador de la biblioteca." # ¿"fábrica"? #: ../Doc/howto/logging-cookbook.rst:1263 #, fuzzy msgid "" -"In Python 3.2 and later, :class:`~logging.LogRecord` creation is done through a " -"factory, which you can specify. The factory is just a callable you can set with :" -"func:`~logging.setLogRecordFactory`, and interrogate with :func:`~logging." -"getLogRecordFactory`. The factory is invoked with the same signature as the :class:" -"`~logging.LogRecord` constructor, as :class:`LogRecord` is the default setting for " -"the factory." +"In Python 3.2 and later, :class:`~logging.LogRecord` creation is done " +"through a factory, which you can specify. The factory is just a callable you " +"can set with :func:`~logging.setLogRecordFactory`, and interrogate with :" +"func:`~logging.getLogRecordFactory`. The factory is invoked with the same " +"signature as the :class:`~logging.LogRecord` constructor, as :class:" +"`LogRecord` is the default setting for the factory." msgstr "" -"En Python 3.2 y posterior, la creación :class:`~logging.LogRecord` se realiza a " -"través de una fábrica, que puede especificar. La fábrica es solo un invocable que " -"puede configurar con :func:`~logging.setLogRecordFactory`, e interrogar con :func:" -"`~logging.getLogRecordFactory`. La fábrica se invoca con la misma firma que el " -"constructor :class:`~logging.LogRecord`, ya que :class:`LogRecord` es la " -"configuración predeterminada de la fábrica." +"En Python 3.2 y posterior, la creación :class:`~logging.LogRecord` se " +"realiza a través de una fábrica, que puede especificar. La fábrica es solo " +"un invocable que puede configurar con :func:`~logging.setLogRecordFactory`, " +"e interrogar con :func:`~logging.getLogRecordFactory`. La fábrica se invoca " +"con la misma firma que el constructor :class:`~logging.LogRecord`, ya que :" +"class:`LogRecord` es la configuración predeterminada de la fábrica." #: ../Doc/howto/logging-cookbook.rst:1270 msgid "" -"This approach allows a custom factory to control all aspects of LogRecord creation. " -"For example, you could return a subclass, or just add some additional attributes to " -"the record once created, using a pattern similar to this::" +"This approach allows a custom factory to control all aspects of LogRecord " +"creation. For example, you could return a subclass, or just add some " +"additional attributes to the record once created, using a pattern similar to " +"this::" msgstr "" -"Este enfoque permite que una fábrica personalizada controle todos los aspectos de la " -"creación de *LogRecord*. Por ejemplo, podría devolver una subclase, o simplemente " -"agregar algunos atributos adicionales al registro una vez creado, usando un patrón " -"similar a este::" +"Este enfoque permite que una fábrica personalizada controle todos los " +"aspectos de la creación de *LogRecord*. Por ejemplo, podría devolver una " +"subclase, o simplemente agregar algunos atributos adicionales al registro " +"una vez creado, usando un patrón similar a este::" #: ../Doc/howto/logging-cookbook.rst:1283 msgid "" -"This pattern allows different libraries to chain factories together, and as long as " -"they don't overwrite each other's attributes or unintentionally overwrite the " -"attributes provided as standard, there should be no surprises. However, it should be " -"borne in mind that each link in the chain adds run-time overhead to all logging " -"operations, and the technique should only be used when the use of a :class:`Filter` " -"does not provide the desired result." -msgstr "" -"Este patrón permite que diferentes bibliotecas encadenen fábricas juntas, y siempre " -"que no sobrescriban los atributos de las demás o sobrescriban involuntariamente los " -"atributos proporcionados como estándar, no debería haber sorpresas. Sin embargo, " -"debe tenerse en cuenta que cada eslabón de la cadena agrega una sobrecarga de tiempo " -"de ejecución a todas las operaciones de registro, y la técnica solo debe usarse " -"cuando el uso de :class:`Filter` no proporciona el resultado deseado." +"This pattern allows different libraries to chain factories together, and as " +"long as they don't overwrite each other's attributes or unintentionally " +"overwrite the attributes provided as standard, there should be no surprises. " +"However, it should be borne in mind that each link in the chain adds run-" +"time overhead to all logging operations, and the technique should only be " +"used when the use of a :class:`Filter` does not provide the desired result." +msgstr "" +"Este patrón permite que diferentes bibliotecas encadenen fábricas juntas, y " +"siempre que no sobrescriban los atributos de las demás o sobrescriban " +"involuntariamente los atributos proporcionados como estándar, no debería " +"haber sorpresas. Sin embargo, debe tenerse en cuenta que cada eslabón de la " +"cadena agrega una sobrecarga de tiempo de ejecución a todas las operaciones " +"de registro, y la técnica solo debe usarse cuando el uso de :class:`Filter` " +"no proporciona el resultado deseado." #: ../Doc/howto/logging-cookbook.rst:1294 msgid "Subclassing QueueHandler - a ZeroMQ example" @@ -1036,21 +1101,22 @@ msgstr "Subclasificación QueueHandler - un ejemplo de ZeroMQ" #: ../Doc/howto/logging-cookbook.rst:1296 msgid "" -"You can use a :class:`QueueHandler` subclass to send messages to other kinds of " -"queues, for example a ZeroMQ 'publish' socket. In the example below,the socket is " -"created separately and passed to the handler (as its 'queue')::" +"You can use a :class:`QueueHandler` subclass to send messages to other kinds " +"of queues, for example a ZeroMQ 'publish' socket. In the example below,the " +"socket is created separately and passed to the handler (as its 'queue')::" msgstr "" -"Puede usar una subclase :class:`QueueHandler` para enviar mensajes a otros tipos de " -"colas, por ejemplo, un socket de 'publicación' ZeroMQ. En el siguiente ejemplo, el " -"socket se crea por separado y se pasa al gestor (como su 'cola')::" +"Puede usar una subclase :class:`QueueHandler` para enviar mensajes a otros " +"tipos de colas, por ejemplo, un socket de 'publicación' ZeroMQ. En el " +"siguiente ejemplo, el socket se crea por separado y se pasa al gestor (como " +"su 'cola')::" #: ../Doc/howto/logging-cookbook.rst:1315 msgid "" -"Of course there are other ways of organizing this, for example passing in the data " -"needed by the handler to create the socket::" +"Of course there are other ways of organizing this, for example passing in " +"the data needed by the handler to create the socket::" msgstr "" -"Por supuesto, hay otras formas de organizar esto, por ejemplo, pasando los datos que " -"necesita el gestor para crear el socket::" +"Por supuesto, hay otras formas de organizar esto, por ejemplo, pasando los " +"datos que necesita el gestor para crear el socket::" #: ../Doc/howto/logging-cookbook.rst:1333 msgid "Subclassing QueueListener - a ZeroMQ example" @@ -1058,12 +1124,12 @@ msgstr "Subclasificación QueueListener - un ejemplo de ZeroMQ" #: ../Doc/howto/logging-cookbook.rst:1335 msgid "" -"You can also subclass :class:`QueueListener` to get messages from other kinds of " -"queues, for example a ZeroMQ 'subscribe' socket. Here's an example::" +"You can also subclass :class:`QueueListener` to get messages from other " +"kinds of queues, for example a ZeroMQ 'subscribe' socket. Here's an example::" msgstr "" -"También puede subclasificar :class:`QueueListener` para obtener mensajes de otros " -"tipos de colas, por ejemplo, un socket de 'suscripción' de ZeroMQ. Aquí tienes un " -"ejemplo::" +"También puede subclasificar :class:`QueueListener` para obtener mensajes de " +"otros tipos de colas, por ejemplo, un socket de 'suscripción' de ZeroMQ. " +"Aquí tienes un ejemplo::" #: ../Doc/howto/logging-cookbook.rst:1354 msgid "Module :mod:`logging`" @@ -1103,49 +1169,51 @@ msgstr "Una configuración de ejemplo basada en diccionario" #: ../Doc/howto/logging-cookbook.rst:1370 msgid "" -"Below is an example of a logging configuration dictionary - it's taken from the " -"`documentation on the Django project `_. This dictionary is passed to :func:`~config." -"dictConfig` to put the configuration into effect::" +"Below is an example of a logging configuration dictionary - it's taken from " +"the `documentation on the Django project `_. This dictionary is passed to :" +"func:`~config.dictConfig` to put the configuration into effect::" msgstr "" -"A continuación se muestra un ejemplo de un diccionario de configuración de logging, " -"tomado de la `documentación del proyecto Django `_. Este diccionario se pasa a :func:" -"`~config.dictConfig` para poner en efecto la configuración::" +"A continuación se muestra un ejemplo de un diccionario de configuración de " +"logging, tomado de la `documentación del proyecto Django `_. Este " +"diccionario se pasa a :func:`~config.dictConfig` para poner en efecto la " +"configuración::" #: ../Doc/howto/logging-cookbook.rst:1426 msgid "" -"For more information about this configuration, you can see the `relevant section " -"`_ of the " -"Django documentation." +"For more information about this configuration, you can see the `relevant " +"section `_ of the Django documentation." msgstr "" "Para obtener más información sobre esta configuración, puede ver la `sección " -"correspondiente `_ de la documentación de Django." +"correspondiente `_ de la documentación de Django." #: ../Doc/howto/logging-cookbook.rst:1433 msgid "Using a rotator and namer to customize log rotation processing" msgstr "" -"Usar un rotador y un nombre para personalizar el procesamiento de rotación de " -"registros" +"Usar un rotador y un nombre para personalizar el procesamiento de rotación " +"de registros" #: ../Doc/howto/logging-cookbook.rst:1435 msgid "" -"An example of how you can define a namer and rotator is given in the following " -"snippet, which shows zlib-based compression of the log file::" +"An example of how you can define a namer and rotator is given in the " +"following snippet, which shows zlib-based compression of the log file::" msgstr "" -"Un ejemplo de cómo puede definir un nombre y un rotador se da en el siguiente " -"fragmento, que muestra la compresión basada en zlib del archivo de registro::" +"Un ejemplo de cómo puede definir un nombre y un rotador se da en el " +"siguiente fragmento, que muestra la compresión basada en zlib del archivo de " +"registro::" #: ../Doc/howto/logging-cookbook.rst:1453 msgid "" "These are not \"true\" .gz files, as they are bare compressed data, with no " -"\"container\" such as you’d find in an actual gzip file. This snippet is just for " -"illustration purposes." +"\"container\" such as you’d find in an actual gzip file. This snippet is " +"just for illustration purposes." msgstr "" -"Estos no son archivos .gz \"verdaderos\", ya que son datos comprimidos sin ningún " -"\"contenedor\" como el que encontraría en un archivo gzip real. Este fragmento es " -"solo para fines ilustrativos." +"Estos no son archivos .gz \"verdaderos\", ya que son datos comprimidos sin " +"ningún \"contenedor\" como el que encontraría en un archivo gzip real. Este " +"fragmento es solo para fines ilustrativos." #: ../Doc/howto/logging-cookbook.rst:1458 msgid "A more elaborate multiprocessing example" @@ -1153,15 +1221,15 @@ msgstr "Un ejemplo de multiprocesamiento más elaborado" #: ../Doc/howto/logging-cookbook.rst:1460 msgid "" -"The following working example shows how logging can be used with multiprocessing " -"using configuration files. The configurations are fairly simple, but serve to " -"illustrate how more complex ones could be implemented in a real multiprocessing " -"scenario." +"The following working example shows how logging can be used with " +"multiprocessing using configuration files. The configurations are fairly " +"simple, but serve to illustrate how more complex ones could be implemented " +"in a real multiprocessing scenario." msgstr "" "El siguiente ejemplo de trabajo muestra cómo logging se puede usar con " "multiprocesamiento usando archivos de configuración. Las configuraciones son " -"bastante simples, pero sirven para ilustrar cómo se podrían implementar las más " -"complejas en un escenario real de multiprocesamiento." +"bastante simples, pero sirven para ilustrar cómo se podrían implementar las " +"más complejas en un escenario real de multiprocesamiento." # En algunas lineas anteriores me pasa lo mismo. No sé muy bien qué significa y cómo traducir "listener process" y "worker processes". Separé en varias oraciones para que sea más fluida la lectura. #: ../Doc/howto/logging-cookbook.rst:1465 @@ -1169,29 +1237,32 @@ msgstr "" msgid "" "In the example, the main process spawns a listener process and some worker " "processes. Each of the main process, the listener and the workers have three " -"separate configurations (the workers all share the same configuration). We can see " -"logging in the main process, how the workers log to a QueueHandler and how the " -"listener implements a QueueListener and a more complex logging configuration, and " -"arranges to dispatch events received via the queue to the handlers specified in the " -"configuration. Note that these configurations are purely illustrative, but you " -"should be able to adapt this example to your own scenario." -msgstr "" -"En el ejemplo, el proceso principal genera un proceso de escucha y algunos procesos " -"de trabajo. Cada uno de los procesos principales, el oyente y los de trabajo tienen " -"tres configuraciones separadas (todos los de trabajo comparten la misma " -"configuración). Podemos ver el registro en el proceso principal, cómo los de trabajo " -"inician sesión en un *QueueHandler* y cómo el oyente implementa un *QueueListener*. " -"Este último con una configuración de registro más compleja, organiza el envío de " -"eventos recibidos a través de la cola a los gestores especificados en la " -"configuración. Tenga en cuenta que estas configuraciones son puramente ilustrativas, " -"pero usted debe ser capaz de adaptar este ejemplo a su propio escenario." +"separate configurations (the workers all share the same configuration). We " +"can see logging in the main process, how the workers log to a QueueHandler " +"and how the listener implements a QueueListener and a more complex logging " +"configuration, and arranges to dispatch events received via the queue to the " +"handlers specified in the configuration. Note that these configurations are " +"purely illustrative, but you should be able to adapt this example to your " +"own scenario." +msgstr "" +"En el ejemplo, el proceso principal genera un proceso de escucha y algunos " +"procesos de trabajo. Cada uno de los procesos principales, el oyente y los " +"de trabajo tienen tres configuraciones separadas (todos los de trabajo " +"comparten la misma configuración). Podemos ver el registro en el proceso " +"principal, cómo los de trabajo inician sesión en un *QueueHandler* y cómo el " +"oyente implementa un *QueueListener*. Este último con una configuración de " +"registro más compleja, organiza el envío de eventos recibidos a través de la " +"cola a los gestores especificados en la configuración. Tenga en cuenta que " +"estas configuraciones son puramente ilustrativas, pero usted debe ser capaz " +"de adaptar este ejemplo a su propio escenario." #: ../Doc/howto/logging-cookbook.rst:1475 msgid "" -"Here's the script - the docstrings and the comments hopefully explain how it works::" +"Here's the script - the docstrings and the comments hopefully explain how it " +"works::" msgstr "" -"Aquí está el script, el docstrings y los comentarios, esperemos, expliquen cómo " -"funciona::" +"Aquí está el script, el docstrings y los comentarios, esperemos, expliquen " +"cómo funciona::" #: ../Doc/howto/logging-cookbook.rst:1687 msgid "Inserting a BOM into messages sent to a SysLogHandler" @@ -1199,91 +1270,97 @@ msgstr "Insertar BOM en mensajes enviados a SysLogHandler" #: ../Doc/howto/logging-cookbook.rst:1689 msgid "" -":rfc:`5424` requires that a Unicode message be sent to a syslog daemon as a set of " -"bytes which have the following structure: an optional pure-ASCII component, followed " -"by a UTF-8 Byte Order Mark (BOM), followed by Unicode encoded using UTF-8. (See the :" -"rfc:`relevant section of the specification <5424#section-6>`.)" +":rfc:`5424` requires that a Unicode message be sent to a syslog daemon as a " +"set of bytes which have the following structure: an optional pure-ASCII " +"component, followed by a UTF-8 Byte Order Mark (BOM), followed by Unicode " +"encoded using UTF-8. (See the :rfc:`relevant section of the specification " +"<5424#section-6>`.)" msgstr "" -":rfc:`5424` requiere que se envíe un mensaje Unicode a un demonio syslog como un " -"conjunto de bytes que tienen la siguiente estructura: un componente opcional puro-" -"ASCII, seguido de una Marca de Orden de Bytes UTF-8 (*BOM* por sus siglas en " -"inglés), seguida de codificado en Unicode usando UTF-8. (Consulte la :rfc:`sección " -"relevante de la especificación <5424 # section-6>`.)" +":rfc:`5424` requiere que se envíe un mensaje Unicode a un demonio syslog " +"como un conjunto de bytes que tienen la siguiente estructura: un componente " +"opcional puro-ASCII, seguido de una Marca de Orden de Bytes UTF-8 (*BOM* por " +"sus siglas en inglés), seguida de codificado en Unicode usando UTF-8. " +"(Consulte la :rfc:`sección relevante de la especificación <5424 # " +"section-6>`.)" #: ../Doc/howto/logging-cookbook.rst:1695 msgid "" -"In Python 3.1, code was added to :class:`~logging.handlers.SysLogHandler` to insert " -"a BOM into the message, but unfortunately, it was implemented incorrectly, with the " -"BOM appearing at the beginning of the message and hence not allowing any pure-ASCII " -"component to appear before it." +"In Python 3.1, code was added to :class:`~logging.handlers.SysLogHandler` to " +"insert a BOM into the message, but unfortunately, it was implemented " +"incorrectly, with the BOM appearing at the beginning of the message and " +"hence not allowing any pure-ASCII component to appear before it." msgstr "" -"En Python 3.1, se agregó código a :class:`~logging.handlers.SysLogHandler` para " -"insertar BOM en el mensaje, pero desafortunadamente, se implementó incorrectamente, " -"BOM aparece al principio del mensaje y, por lo tanto, no permite ningún componente " -"ASCII puro para que aparezca antes." +"En Python 3.1, se agregó código a :class:`~logging.handlers.SysLogHandler` " +"para insertar BOM en el mensaje, pero desafortunadamente, se implementó " +"incorrectamente, BOM aparece al principio del mensaje y, por lo tanto, no " +"permite ningún componente ASCII puro para que aparezca antes." #: ../Doc/howto/logging-cookbook.rst:1701 msgid "" -"As this behaviour is broken, the incorrect BOM insertion code is being removed from " -"Python 3.2.4 and later. However, it is not being replaced, and if you want to " -"produce :rfc:`5424`-compliant messages which include a BOM, an optional pure-ASCII " -"sequence before it and arbitrary Unicode after it, encoded using UTF-8, then you " -"need to do the following:" +"As this behaviour is broken, the incorrect BOM insertion code is being " +"removed from Python 3.2.4 and later. However, it is not being replaced, and " +"if you want to produce :rfc:`5424`-compliant messages which include a BOM, " +"an optional pure-ASCII sequence before it and arbitrary Unicode after it, " +"encoded using UTF-8, then you need to do the following:" msgstr "" -"Como este comportamiento no funciona, el código de inserción BOM incorrecto se " -"elimina de Python 3.2.4 y versiones posteriores. Sin embargo, no se está " -"reemplazando, y si desea producir mensajes compatibles con :rfc:`5424` que incluyan " -"BOM, una secuencia opcional de ASCII puro antes y Unicode arbitrario después, " -"codificados usando UTF-8; entonces necesita hacer lo siguiente:" +"Como este comportamiento no funciona, el código de inserción BOM incorrecto " +"se elimina de Python 3.2.4 y versiones posteriores. Sin embargo, no se está " +"reemplazando, y si desea producir mensajes compatibles con :rfc:`5424` que " +"incluyan BOM, una secuencia opcional de ASCII puro antes y Unicode " +"arbitrario después, codificados usando UTF-8; entonces necesita hacer lo " +"siguiente:" #: ../Doc/howto/logging-cookbook.rst:1707 msgid "" -"Attach a :class:`~logging.Formatter` instance to your :class:`~logging.handlers." -"SysLogHandler` instance, with a format string such as::" +"Attach a :class:`~logging.Formatter` instance to your :class:`~logging." +"handlers.SysLogHandler` instance, with a format string such as::" msgstr "" -"Adjunte una instancia de :class:`~logging.Formatter` a su instancia :class:`~logging." -"handlers.SysLogHandler`, con una cadena de caracteres de formato como::" +"Adjunte una instancia de :class:`~logging.Formatter` a su instancia :class:" +"`~logging.handlers.SysLogHandler`, con una cadena de caracteres de formato " +"como::" #: ../Doc/howto/logging-cookbook.rst:1713 msgid "" -"The Unicode code point U+FEFF, when encoded using UTF-8, will be encoded as a UTF-8 " -"BOM -- the byte-string ``b'\\xef\\xbb\\xbf'``." +"The Unicode code point U+FEFF, when encoded using UTF-8, will be encoded as " +"a UTF-8 BOM -- the byte-string ``b'\\xef\\xbb\\xbf'``." msgstr "" -"El punto de código Unicode U+ FEFF, cuando se codifica usando UTF-8, se codificará " -"como una BOM UTF-8, la cadena de bytes ``b'\\xef\\xbb\\xbf'``." +"El punto de código Unicode U+ FEFF, cuando se codifica usando UTF-8, se " +"codificará como una BOM UTF-8, la cadena de bytes ``b'\\xef\\xbb\\xbf'``." #: ../Doc/howto/logging-cookbook.rst:1716 msgid "" -"Replace the ASCII section with whatever placeholders you like, but make sure that " -"the data that appears in there after substitution is always ASCII (that way, it will " -"remain unchanged after UTF-8 encoding)." +"Replace the ASCII section with whatever placeholders you like, but make sure " +"that the data that appears in there after substitution is always ASCII (that " +"way, it will remain unchanged after UTF-8 encoding)." msgstr "" -"Reemplace la sección ASCII con los marcadores de posición que desee, pero asegúrese " -"de que los datos que aparecen allí después de la sustitución sean siempre ASCII (de " -"esa manera, permanecerán sin cambios después de la codificación UTF-8)." +"Reemplace la sección ASCII con los marcadores de posición que desee, pero " +"asegúrese de que los datos que aparecen allí después de la sustitución sean " +"siempre ASCII (de esa manera, permanecerán sin cambios después de la " +"codificación UTF-8)." #: ../Doc/howto/logging-cookbook.rst:1720 msgid "" -"Replace the Unicode section with whatever placeholders you like; if the data which " -"appears there after substitution contains characters outside the ASCII range, that's " -"fine -- it will be encoded using UTF-8." +"Replace the Unicode section with whatever placeholders you like; if the data " +"which appears there after substitution contains characters outside the ASCII " +"range, that's fine -- it will be encoded using UTF-8." msgstr "" -"Reemplace la sección Unicode con los marcadores de posición que desee; si los datos " -"que aparecen allí después de la sustitución contienen caracteres fuera del rango " -"ASCII, está bien: se codificarán usando UTF-8." +"Reemplace la sección Unicode con los marcadores de posición que desee; si " +"los datos que aparecen allí después de la sustitución contienen caracteres " +"fuera del rango ASCII, está bien: se codificarán usando UTF-8." #: ../Doc/howto/logging-cookbook.rst:1724 msgid "" -"The formatted message *will* be encoded using UTF-8 encoding by ``SysLogHandler``. " -"If you follow the above rules, you should be able to produce :rfc:`5424`-compliant " -"messages. If you don't, logging may not complain, but your messages will not be RFC " -"5424-compliant, and your syslog daemon may complain." +"The formatted message *will* be encoded using UTF-8 encoding by " +"``SysLogHandler``. If you follow the above rules, you should be able to " +"produce :rfc:`5424`-compliant messages. If you don't, logging may not " +"complain, but your messages will not be RFC 5424-compliant, and your syslog " +"daemon may complain." msgstr "" "El mensaje formateado *se* codificará utilizando la codificación UTF-8 por " -"``SysLogHandler``. Si sigue las reglas anteriores, debería poder producir mensajes " -"compatibles con :rfc:`5424`. Si no lo hace, es posible que el registro no se queje, " -"pero sus mensajes no serán compatibles con RFC 5424 y su demonio syslog puede " -"quejarse." +"``SysLogHandler``. Si sigue las reglas anteriores, debería poder producir " +"mensajes compatibles con :rfc:`5424`. Si no lo hace, es posible que el " +"registro no se queje, pero sus mensajes no serán compatibles con RFC 5424 y " +"su demonio syslog puede quejarse." #: ../Doc/howto/logging-cookbook.rst:1731 msgid "Implementing structured logging" @@ -1293,42 +1370,44 @@ msgstr "Implementar logging estructurado" #: ../Doc/howto/logging-cookbook.rst:1733 #, fuzzy msgid "" -"Although most logging messages are intended for reading by humans, and thus not " -"readily machine-parseable, there might be circumstances where you want to output " -"messages in a structured format which *is* capable of being parsed by a program " -"(without needing complex regular expressions to parse the log message). This is " -"straightforward to achieve using the logging package. There are a number of ways in " -"which this could be achieved, but the following is a simple approach which uses JSON " -"to serialise the event in a machine-parseable manner::" -msgstr "" -"Aunque la mayoría de los mensajes de logging están destinados a ser leídos por " -"humanos y, por lo tanto, no se pueden analizar fácilmente mediante una máquina, " -"puede haber circunstancias en las que desee generar mensajes en un formato " -"estructurado que *sea* capaz de ser analizado por un programa (sin necesidad de " -"expresiones regulares complejas para analizar el mensaje de registro). Esto es " -"sencillo de lograr utilizando el paquete logging. Hay varias formas de lograr esto, " -"pero el siguiente es un enfoque simple que usa JSON para serializar el evento de una " -"manera analizable por computadora:" +"Although most logging messages are intended for reading by humans, and thus " +"not readily machine-parseable, there might be circumstances where you want " +"to output messages in a structured format which *is* capable of being parsed " +"by a program (without needing complex regular expressions to parse the log " +"message). This is straightforward to achieve using the logging package. " +"There are a number of ways in which this could be achieved, but the " +"following is a simple approach which uses JSON to serialise the event in a " +"machine-parseable manner::" +msgstr "" +"Aunque la mayoría de los mensajes de logging están destinados a ser leídos " +"por humanos y, por lo tanto, no se pueden analizar fácilmente mediante una " +"máquina, puede haber circunstancias en las que desee generar mensajes en un " +"formato estructurado que *sea* capaz de ser analizado por un programa (sin " +"necesidad de expresiones regulares complejas para analizar el mensaje de " +"registro). Esto es sencillo de lograr utilizando el paquete logging. Hay " +"varias formas de lograr esto, pero el siguiente es un enfoque simple que usa " +"JSON para serializar el evento de una manera analizable por computadora:" #: ../Doc/howto/logging-cookbook.rst:1757 msgid "If the above script is run, it prints:" msgstr "Si se ejecuta el script anterior, se imprime:" -#: ../Doc/howto/logging-cookbook.rst:1763 ../Doc/howto/logging-cookbook.rst:1812 +#: ../Doc/howto/logging-cookbook.rst:1763 +#: ../Doc/howto/logging-cookbook.rst:1812 msgid "" -"Note that the order of items might be different according to the version of Python " -"used." +"Note that the order of items might be different according to the version of " +"Python used." msgstr "" -"Tenga en cuenta que el orden de los elementos puede ser diferente según la versión " -"de Python utilizada." +"Tenga en cuenta que el orden de los elementos puede ser diferente según la " +"versión de Python utilizada." #: ../Doc/howto/logging-cookbook.rst:1766 msgid "" -"If you need more specialised processing, you can use a custom JSON encoder, as in " -"the following complete example::" +"If you need more specialised processing, you can use a custom JSON encoder, " +"as in the following complete example::" msgstr "" -"Si necesita un procesamiento más especializado, puede utilizar un codificador JSON " -"personalizado, como en el siguiente ejemplo completo::" +"Si necesita un procesamiento más especializado, puede utilizar un " +"codificador JSON personalizado, como en el siguiente ejemplo completo::" #: ../Doc/howto/logging-cookbook.rst:1806 msgid "When the above script is run, it prints:" @@ -1340,63 +1419,66 @@ msgstr "Personalización de gestores con :func:`dictConfig`" #: ../Doc/howto/logging-cookbook.rst:1823 msgid "" -"There are times when you want to customize logging handlers in particular ways, and " -"if you use :func:`dictConfig` you may be able to do this without subclassing. As an " -"example, consider that you may want to set the ownership of a log file. On POSIX, " -"this is easily done using :func:`shutil.chown`, but the file handlers in the stdlib " -"don't offer built-in support. You can customize handler creation using a plain " -"function such as::" -msgstr "" -"Hay ocasiones en las que desea personalizar los gestores de logging de formas " -"particulares, y si usa :func:`dictConfig` puede hacerlo sin subclases. Como ejemplo, " -"considere que es posible que desee establecer la propiedad de un archivo de " -"registro. En POSIX, esto se hace fácilmente usando :func:`shutil.chown`, pero los " -"gestores de archivos en stdlib no ofrecen soporte integrado. Puede personalizar la " -"creación de gestores usando una función simple como::" +"There are times when you want to customize logging handlers in particular " +"ways, and if you use :func:`dictConfig` you may be able to do this without " +"subclassing. As an example, consider that you may want to set the ownership " +"of a log file. On POSIX, this is easily done using :func:`shutil.chown`, but " +"the file handlers in the stdlib don't offer built-in support. You can " +"customize handler creation using a plain function such as::" +msgstr "" +"Hay ocasiones en las que desea personalizar los gestores de logging de " +"formas particulares, y si usa :func:`dictConfig` puede hacerlo sin " +"subclases. Como ejemplo, considere que es posible que desee establecer la " +"propiedad de un archivo de registro. En POSIX, esto se hace fácilmente " +"usando :func:`shutil.chown`, pero los gestores de archivos en stdlib no " +"ofrecen soporte integrado. Puede personalizar la creación de gestores usando " +"una función simple como::" #: ../Doc/howto/logging-cookbook.rst:1837 msgid "" -"You can then specify, in a logging configuration passed to :func:`dictConfig`, that " -"a logging handler be created by calling this function::" +"You can then specify, in a logging configuration passed to :func:" +"`dictConfig`, that a logging handler be created by calling this function::" msgstr "" "Luego puede especificar, en una configuración de logging pasada a :func:" "`dictConfig`, que se cree un gestor de logging llamando a esta función::" #: ../Doc/howto/logging-cookbook.rst:1870 msgid "" -"In this example I am setting the ownership using the ``pulse`` user and group, just " -"for the purposes of illustration. Putting it together into a working script, " -"``chowntest.py``::" +"In this example I am setting the ownership using the ``pulse`` user and " +"group, just for the purposes of illustration. Putting it together into a " +"working script, ``chowntest.py``::" msgstr "" "En este ejemplo, se establece la propiedad utilizando el usuario y el grupo " -"``pulse``, solo con fines ilustrativos. Poniéndolo junto en un script de trabajo, " -"``chowntest.py``::" +"``pulse``, solo con fines ilustrativos. Poniéndolo junto en un script de " +"trabajo, ``chowntest.py``::" #: ../Doc/howto/logging-cookbook.rst:1917 msgid "To run this, you will probably need to run as ``root``:" -msgstr "Para ejecutar esto, probablemente se necesite ejecutarlo como ``root``:" +msgstr "" +"Para ejecutar esto, probablemente se necesite ejecutarlo como ``root``:" #: ../Doc/howto/logging-cookbook.rst:1927 msgid "" -"Note that this example uses Python 3.3 because that's where :func:`shutil.chown` " -"makes an appearance. This approach should work with any Python version that " -"supports :func:`dictConfig` - namely, Python 2.7, 3.2 or later. With pre-3.3 " -"versions, you would need to implement the actual ownership change using e.g. :func:" -"`os.chown`." +"Note that this example uses Python 3.3 because that's where :func:`shutil." +"chown` makes an appearance. This approach should work with any Python " +"version that supports :func:`dictConfig` - namely, Python 2.7, 3.2 or later. " +"With pre-3.3 versions, you would need to implement the actual ownership " +"change using e.g. :func:`os.chown`." msgstr "" -"Tenga en cuenta que este ejemplo usa Python 3.3 porque ahí es donde :func:`shutil." -"chown` aparece. Este enfoque debería funcionar con cualquier versión de Python que " -"admita :func:`dictConfig`, es decir, Python 2.7, 3.2 o posterior. Con las versiones " -"anteriores a 3.3, necesitaría implementar el cambio de propiedad real usando, por " -"ejemplo, :func:`os.chown`." +"Tenga en cuenta que este ejemplo usa Python 3.3 porque ahí es donde :func:" +"`shutil.chown` aparece. Este enfoque debería funcionar con cualquier versión " +"de Python que admita :func:`dictConfig`, es decir, Python 2.7, 3.2 o " +"posterior. Con las versiones anteriores a 3.3, necesitaría implementar el " +"cambio de propiedad real usando, por ejemplo, :func:`os.chown`." #: ../Doc/howto/logging-cookbook.rst:1933 msgid "" -"In practice, the handler-creating function may be in a utility module somewhere in " -"your project. Instead of the line in the configuration::" +"In practice, the handler-creating function may be in a utility module " +"somewhere in your project. Instead of the line in the configuration::" msgstr "" -"En la práctica, la función de creación de gestores puede estar en un módulo de " -"utilidad en algún lugar de su proyecto. En lugar de la línea en la configuración::" +"En la práctica, la función de creación de gestores puede estar en un módulo " +"de utilidad en algún lugar de su proyecto. En lugar de la línea en la " +"configuración::" #: ../Doc/howto/logging-cookbook.rst:1938 msgid "you could use e.g.::" @@ -1404,35 +1486,36 @@ msgstr "podrías usar, por ejemplo,::" #: ../Doc/howto/logging-cookbook.rst:1942 msgid "" -"where ``project.util`` can be replaced with the actual name of the package where the " -"function resides. In the above working script, using ``'ext://__main__." -"owned_file_handler'`` should work. Here, the actual callable is resolved by :func:" -"`dictConfig` from the ``ext://`` specification." +"where ``project.util`` can be replaced with the actual name of the package " +"where the function resides. In the above working script, using ``'ext://" +"__main__.owned_file_handler'`` should work. Here, the actual callable is " +"resolved by :func:`dictConfig` from the ``ext://`` specification." msgstr "" -"donde ``project.util`` se puede reemplazar con el nombre real del paquete donde " -"reside la función. En el script de trabajo anterior, el uso de ``'ext://__main__." -"owned_file_handler'`` debería funcionar. Aquí, el invocable real se resuelve " -"mediante :func:`dictConfig` de la especificación ``ext://``." +"donde ``project.util`` se puede reemplazar con el nombre real del paquete " +"donde reside la función. En el script de trabajo anterior, el uso de " +"``'ext://__main__.owned_file_handler'`` debería funcionar. Aquí, el " +"invocable real se resuelve mediante :func:`dictConfig` de la especificación " +"``ext://``." #: ../Doc/howto/logging-cookbook.rst:1947 msgid "" -"This example hopefully also points the way to how you could implement other types of " -"file change - e.g. setting specific POSIX permission bits - in the same way, using :" -"func:`os.chmod`." +"This example hopefully also points the way to how you could implement other " +"types of file change - e.g. setting specific POSIX permission bits - in the " +"same way, using :func:`os.chmod`." msgstr "" -"Por furtuna, este ejemplo también indica el camino hacia cómo podría implementar " -"otros tipos de cambio de archivo, por ejemplo, configurando de la misma manera bits " -"de permisos POSIX específicos, usando :func:`os.chmod`." +"Por furtuna, este ejemplo también indica el camino hacia cómo podría " +"implementar otros tipos de cambio de archivo, por ejemplo, configurando de " +"la misma manera bits de permisos POSIX específicos, usando :func:`os.chmod`." #: ../Doc/howto/logging-cookbook.rst:1951 msgid "" -"Of course, the approach could also be extended to types of handler other than a :" -"class:`~logging.FileHandler` - for example, one of the rotating file handlers, or a " -"different type of handler altogether." +"Of course, the approach could also be extended to types of handler other " +"than a :class:`~logging.FileHandler` - for example, one of the rotating file " +"handlers, or a different type of handler altogether." msgstr "" -"Por supuesto, el enfoque también podría extenderse a tipos de gestores distintos a :" -"class:`~logging.FileHandler` - por ejemplo, uno de los gestores de archivos " -"rotativos, o un tipo diferente por completo." +"Por supuesto, el enfoque también podría extenderse a tipos de gestores " +"distintos a :class:`~logging.FileHandler` - por ejemplo, uno de los gestores " +"de archivos rotativos, o un tipo diferente por completo." #: ../Doc/howto/logging-cookbook.rst:1961 msgid "Using particular formatting styles throughout your application" @@ -1440,110 +1523,112 @@ msgstr "Usar estilos de formato particulares en toda su aplicación" #: ../Doc/howto/logging-cookbook.rst:1963 msgid "" -"In Python 3.2, the :class:`~logging.Formatter` gained a ``style`` keyword parameter " -"which, while defaulting to ``%`` for backward compatibility, allowed the " -"specification of ``{`` or ``$`` to support the formatting approaches supported by :" -"meth:`str.format` and :class:`string.Template`. Note that this governs the " -"formatting of logging messages for final output to logs, and is completely " -"orthogonal to how an individual logging message is constructed." -msgstr "" -"En Python 3.2, :class:`~logging.Formatter` obtuvo un parámetro de palabra clave " -"``estilo`` que, aunque por defecto era ``%`` para compatibilidad con versiones " -"anteriores, permitía la especificación de ``{`` o ``$`` para permitir los enfoques " -"de formato admitidos por :meth:`str.format` y :class:`string.Template`. Tenga en " -"cuenta que esto rige el formato de los mensajes de logging para la salida final a " -"los registros y es completamente ortogonal a cómo se construye un mensaje de " -"registro individual." +"In Python 3.2, the :class:`~logging.Formatter` gained a ``style`` keyword " +"parameter which, while defaulting to ``%`` for backward compatibility, " +"allowed the specification of ``{`` or ``$`` to support the formatting " +"approaches supported by :meth:`str.format` and :class:`string.Template`. " +"Note that this governs the formatting of logging messages for final output " +"to logs, and is completely orthogonal to how an individual logging message " +"is constructed." +msgstr "" +"En Python 3.2, :class:`~logging.Formatter` obtuvo un parámetro de palabra " +"clave ``estilo`` que, aunque por defecto era ``%`` para compatibilidad con " +"versiones anteriores, permitía la especificación de ``{`` o ``$`` para " +"permitir los enfoques de formato admitidos por :meth:`str.format` y :class:" +"`string.Template`. Tenga en cuenta que esto rige el formato de los mensajes " +"de logging para la salida final a los registros y es completamente ortogonal " +"a cómo se construye un mensaje de registro individual." #: ../Doc/howto/logging-cookbook.rst:1970 -#, python-format msgid "" "Logging calls (:meth:`~Logger.debug`, :meth:`~Logger.info` etc.) only take " -"positional parameters for the actual logging message itself, with keyword parameters " -"used only for determining options for how to handle the logging call (e.g. the " -"``exc_info`` keyword parameter to indicate that traceback information should be " -"logged, or the ``extra`` keyword parameter to indicate additional contextual " -"information to be added to the log). So you cannot directly make logging calls " -"using :meth:`str.format` or :class:`string.Template` syntax, because internally the " -"logging package uses %-formatting to merge the format string and the variable " -"arguments. There would no changing this while preserving backward compatibility, " -"since all logging calls which are out there in existing code will be using %-format " -"strings." -msgstr "" -"Las llamadas de logging (:meth:`~Logger.debug`, :meth:`~Logger.info`, etc.) solo " -"toman parámetros posicionales para el mensaje logging real en sí, con parámetros de " -"palabras clave que se utilizan solo para determinar las opciones sobre cómo manejar " -"la llamada de logging (por ejemplo, el parámetro de palabra clave ``exc_info`` para " -"indicar que la información de rastreo debe registrarse, o el parámetro de palabra " -"clave ``extra`` para indicar información contextual adicional que se agregará al " -"registro). Por lo tanto, no puede realizar llamadas de logging directamente usando " -"la sintaxis :meth:`str.format` o :class:`string.Template`, porque internamente el " -"paquete logging usa formato % para fusionar la cadena de formato y los argumentos de " -"las variables. No se cambiaría esto mientras se conserve la compatibilidad con " -"versiones anteriores, ya que todas las llamadas de registro que están en el código " -"existente utilizarán cadenas de caracteres formato %." +"positional parameters for the actual logging message itself, with keyword " +"parameters used only for determining options for how to handle the logging " +"call (e.g. the ``exc_info`` keyword parameter to indicate that traceback " +"information should be logged, or the ``extra`` keyword parameter to indicate " +"additional contextual information to be added to the log). So you cannot " +"directly make logging calls using :meth:`str.format` or :class:`string." +"Template` syntax, because internally the logging package uses %-formatting " +"to merge the format string and the variable arguments. There would no " +"changing this while preserving backward compatibility, since all logging " +"calls which are out there in existing code will be using %-format strings." +msgstr "" +"Las llamadas de logging (:meth:`~Logger.debug`, :meth:`~Logger.info`, etc.) " +"solo toman parámetros posicionales para el mensaje logging real en sí, con " +"parámetros de palabras clave que se utilizan solo para determinar las " +"opciones sobre cómo manejar la llamada de logging (por ejemplo, el parámetro " +"de palabra clave ``exc_info`` para indicar que la información de rastreo " +"debe registrarse, o el parámetro de palabra clave ``extra`` para indicar " +"información contextual adicional que se agregará al registro). Por lo tanto, " +"no puede realizar llamadas de logging directamente usando la sintaxis :meth:" +"`str.format` o :class:`string.Template`, porque internamente el paquete " +"logging usa formato % para fusionar la cadena de formato y los argumentos de " +"las variables. No se cambiaría esto mientras se conserve la compatibilidad " +"con versiones anteriores, ya que todas las llamadas de registro que están en " +"el código existente utilizarán cadenas de caracteres formato %." #: ../Doc/howto/logging-cookbook.rst:1982 -#, python-format msgid "" -"There have been suggestions to associate format styles with specific loggers, but " -"that approach also runs into backward compatibility problems because any existing " -"code could be using a given logger name and using %-formatting." +"There have been suggestions to associate format styles with specific " +"loggers, but that approach also runs into backward compatibility problems " +"because any existing code could be using a given logger name and using %-" +"formatting." msgstr "" -"Ha habido sugerencias para asociar estilos de formato con *loggers* específicos, " -"pero ese enfoque también tiene problemas de compatibilidad con versiones anteriores " -"porque cualquier código existente podría estar usando un nombre de *logger* dado y " -"usando formato %." +"Ha habido sugerencias para asociar estilos de formato con *loggers* " +"específicos, pero ese enfoque también tiene problemas de compatibilidad con " +"versiones anteriores porque cualquier código existente podría estar usando " +"un nombre de *logger* dado y usando formato %." #: ../Doc/howto/logging-cookbook.rst:1986 msgid "" -"For logging to work interoperably between any third-party libraries and your code, " -"decisions about formatting need to be made at the level of the individual logging " -"call. This opens up a couple of ways in which alternative formatting styles can be " -"accommodated." +"For logging to work interoperably between any third-party libraries and your " +"code, decisions about formatting need to be made at the level of the " +"individual logging call. This opens up a couple of ways in which alternative " +"formatting styles can be accommodated." msgstr "" -"Para que logging funcione de manera interoperable entre cualquier biblioteca de " -"terceros y su código, las decisiones sobre el formato deben tomarse a nivel de la " -"llamada de logging individual. Esto abre un par de formas en las que se pueden " -"acomodar estilos de formato alternativos." +"Para que logging funcione de manera interoperable entre cualquier biblioteca " +"de terceros y su código, las decisiones sobre el formato deben tomarse a " +"nivel de la llamada de logging individual. Esto abre un par de formas en las " +"que se pueden acomodar estilos de formato alternativos." #: ../Doc/howto/logging-cookbook.rst:1993 msgid "Using LogRecord factories" msgstr "Uso de fábricas de LogRecord" #: ../Doc/howto/logging-cookbook.rst:1995 -#, python-format -msgid "" -"In Python 3.2, along with the :class:`~logging.Formatter` changes mentioned above, " -"the logging package gained the ability to allow users to set their own :class:" -"`LogRecord` subclasses, using the :func:`setLogRecordFactory` function. You can use " -"this to set your own subclass of :class:`LogRecord`, which does the Right Thing by " -"overriding the :meth:`~LogRecord.getMessage` method. The base class implementation " -"of this method is where the ``msg % args`` formatting happens, and where you can " -"substitute your alternate formatting; however, you should be careful to support all " -"formatting styles and allow %-formatting as the default, to ensure interoperability " -"with other code. Care should also be taken to call ``str(self.msg)``, just as the " -"base implementation does." -msgstr "" -"En Python 3.2, junto con los cambios de :class:`~logging.Formatter` mencionados " -"anteriormente, el paquete logging ganó la capacidad de permitir a los usuarios " -"establecer sus propias subclases :class:`LogRecord`, usando la función :func:" -"`setLogRecordFactory`. Puede usar esto para configurar su propia subclase de :class:" -"`LogRecord`, que hace lo correcto al anular el método :meth:`~LogRecord.getMessage`. " -"La implementación de la clase base de este método es donde ocurre el formato ``msg % " -"args`` y donde puede sustituir su formato alternativo; sin embargo, debe tener " -"cuidado de admitir todos los estilos de formato y permitir formato % como " -"predeterminado, para garantizar la interoperabilidad con otro código. También se " -"debe tener cuidado de llamar a ``str(self.msg)``, tal como lo hace la implementación " +msgid "" +"In Python 3.2, along with the :class:`~logging.Formatter` changes mentioned " +"above, the logging package gained the ability to allow users to set their " +"own :class:`LogRecord` subclasses, using the :func:`setLogRecordFactory` " +"function. You can use this to set your own subclass of :class:`LogRecord`, " +"which does the Right Thing by overriding the :meth:`~LogRecord.getMessage` " +"method. The base class implementation of this method is where the ``msg % " +"args`` formatting happens, and where you can substitute your alternate " +"formatting; however, you should be careful to support all formatting styles " +"and allow %-formatting as the default, to ensure interoperability with other " +"code. Care should also be taken to call ``str(self.msg)``, just as the base " +"implementation does." +msgstr "" +"En Python 3.2, junto con los cambios de :class:`~logging.Formatter` " +"mencionados anteriormente, el paquete logging ganó la capacidad de permitir " +"a los usuarios establecer sus propias subclases :class:`LogRecord`, usando " +"la función :func:`setLogRecordFactory`. Puede usar esto para configurar su " +"propia subclase de :class:`LogRecord`, que hace lo correcto al anular el " +"método :meth:`~LogRecord.getMessage`. La implementación de la clase base de " +"este método es donde ocurre el formato ``msg % args`` y donde puede " +"sustituir su formato alternativo; sin embargo, debe tener cuidado de admitir " +"todos los estilos de formato y permitir formato % como predeterminado, para " +"garantizar la interoperabilidad con otro código. También se debe tener " +"cuidado de llamar a ``str(self.msg)``, tal como lo hace la implementación " "base." #: ../Doc/howto/logging-cookbook.rst:2006 msgid "" -"Refer to the reference documentation on :func:`setLogRecordFactory` and :class:" -"`LogRecord` for more information." +"Refer to the reference documentation on :func:`setLogRecordFactory` and :" +"class:`LogRecord` for more information." msgstr "" -"Consulte la documentación de referencia en :func:`setLogRecordFactory` y :class:" -"`LogRecord` para obtener más información." +"Consulte la documentación de referencia en :func:`setLogRecordFactory` y :" +"class:`LogRecord` para obtener más información." #: ../Doc/howto/logging-cookbook.rst:2011 msgid "Using custom message objects" @@ -1551,45 +1636,46 @@ msgstr "Usar objetos de mensaje personalizados" #: ../Doc/howto/logging-cookbook.rst:2013 msgid "" -"There is another, perhaps simpler way that you can use {}- and $- formatting to " -"construct your individual log messages. You may recall (from :ref:`arbitrary-object-" -"messages`) that when logging you can use an arbitrary object as a message format " -"string, and that the logging package will call :func:`str` on that object to get the " -"actual format string. Consider the following two classes::" -msgstr "" -"Existe otra forma, quizás más sencilla, de usar el formato {} - y $ - para construir " -"sus mensajes de registro individuales. Al iniciar sesión, recuerde que puede usar " -"cualquier objeto como una cadena de caracteres de formato de mensaje (:ref:" -"`arbitrary-object-messages`) que al iniciar sesión puede usar un objeto arbitrario " -"como una cadena de formato de mensaje, y que el paquete de registro llamará :func:" -"`str` en ese objeto para obtener el cadena de formato real. Considere las siguientes " -"dos clases:" +"There is another, perhaps simpler way that you can use {}- and $- formatting " +"to construct your individual log messages. You may recall (from :ref:" +"`arbitrary-object-messages`) that when logging you can use an arbitrary " +"object as a message format string, and that the logging package will call :" +"func:`str` on that object to get the actual format string. Consider the " +"following two classes::" +msgstr "" +"Existe otra forma, quizás más sencilla, de usar el formato {} - y $ - para " +"construir sus mensajes de registro individuales. Al iniciar sesión, recuerde " +"que puede usar cualquier objeto como una cadena de caracteres de formato de " +"mensaje (:ref:`arbitrary-object-messages`) que al iniciar sesión puede usar " +"un objeto arbitrario como una cadena de formato de mensaje, y que el paquete " +"de registro llamará :func:`str` en ese objeto para obtener el cadena de " +"formato real. Considere las siguientes dos clases:" #: ../Doc/howto/logging-cookbook.rst:2038 -#, python-format msgid "" "Either of these can be used in place of a format string, to allow {}- or $-" -"formatting to be used to build the actual \"message\" part which appears in the " -"formatted log output in place of “%(message)s” or “{message}” or “$message”. If you " -"find it a little unwieldy to use the class names whenever you want to log something, " -"you can make it more palatable if you use an alias such as ``M`` or ``_`` for the " -"message (or perhaps ``__``, if you are using ``_`` for localization)." -msgstr "" -"Cualquiera de estos puede usarse en lugar de una cadena de formato, para permitir " -"que se use el formato {} - o $ - para construir la parte del \"mensaje\" real que " -"aparece en la salida del registro formateado en lugar de “%(message)s” or " -"“{message}” or “$message”. Si le resulta un poco difícil de manejar usar los nombres " -"de las clases cada vez que desea registrar algo, puede hacerlo más tolerable si usa " -"un alias como ``M`` o ``_`` para el mensaje (o quizás ``__``, si está " -"utilizando``_`` para localización)." +"formatting to be used to build the actual \"message\" part which appears in " +"the formatted log output in place of “%(message)s” or “{message}” or " +"“$message”. If you find it a little unwieldy to use the class names whenever " +"you want to log something, you can make it more palatable if you use an " +"alias such as ``M`` or ``_`` for the message (or perhaps ``__``, if you are " +"using ``_`` for localization)." +msgstr "" +"Cualquiera de estos puede usarse en lugar de una cadena de formato, para " +"permitir que se use el formato {} - o $ - para construir la parte del " +"\"mensaje\" real que aparece en la salida del registro formateado en lugar " +"de “%(message)s” or “{message}” or “$message”. Si le resulta un poco difícil " +"de manejar usar los nombres de las clases cada vez que desea registrar algo, " +"puede hacerlo más tolerable si usa un alias como ``M`` o ``_`` para el " +"mensaje (o quizás ``__``, si está utilizando``_`` para localización)." #: ../Doc/howto/logging-cookbook.rst:2046 msgid "" -"Examples of this approach are given below. Firstly, formatting with :meth:`str." -"format`::" -msgstr "" -"A continuación se dan ejemplos de este enfoque. En primer lugar, formatear con :meth:" +"Examples of this approach are given below. Firstly, formatting with :meth:" "`str.format`::" +msgstr "" +"A continuación se dan ejemplos de este enfoque. En primer lugar, formatear " +"con :meth:`str.format`::" #: ../Doc/howto/logging-cookbook.rst:2060 msgid "Secondly, formatting with :class:`string.Template`::" @@ -1597,22 +1683,24 @@ msgstr "En segundo lugar, formatear con :class:`string.Template`::" #: ../Doc/howto/logging-cookbook.rst:2067 msgid "" -"One thing to note is that you pay no significant performance penalty with this " -"approach: the actual formatting happens not when you make the logging call, but when " -"(and if) the logged message is actually about to be output to a log by a handler. So " -"the only slightly unusual thing which might trip you up is that the parentheses go " -"around the format string and the arguments, not just the format string. That’s " -"because the __ notation is just syntax sugar for a constructor call to one of the " -"``XXXMessage`` classes shown above." -msgstr "" -"Una cosa a tener en cuenta es que no paga ninguna penalización significativa del " -"rendimiento con este enfoque: el formato real no se produce cuando se realiza la " -"llamada logging, sino cuando (y si) el mensaje registrado está realmente a punto de " -"ser salida a un registro por un gestor. Así que lo único un poco inusual con lo que " -"podría tropezar es que los paréntesis van alrededor de la cadena de caracteres de " -"formato y los argumentos, no sólo la cadena de formato. Esto se debe a que la " -"notación __ es solo azúcar sintáctico para una llamada de constructor a una de las " -"clases ``XXXMessage`` mostradas anteriormente." +"One thing to note is that you pay no significant performance penalty with " +"this approach: the actual formatting happens not when you make the logging " +"call, but when (and if) the logged message is actually about to be output to " +"a log by a handler. So the only slightly unusual thing which might trip you " +"up is that the parentheses go around the format string and the arguments, " +"not just the format string. That’s because the __ notation is just syntax " +"sugar for a constructor call to one of the ``XXXMessage`` classes shown " +"above." +msgstr "" +"Una cosa a tener en cuenta es que no paga ninguna penalización significativa " +"del rendimiento con este enfoque: el formato real no se produce cuando se " +"realiza la llamada logging, sino cuando (y si) el mensaje registrado está " +"realmente a punto de ser salida a un registro por un gestor. Así que lo " +"único un poco inusual con lo que podría tropezar es que los paréntesis van " +"alrededor de la cadena de caracteres de formato y los argumentos, no sólo la " +"cadena de formato. Esto se debe a que la notación __ es solo azúcar " +"sintáctico para una llamada de constructor a una de las clases " +"``XXXMessage`` mostradas anteriormente." #: ../Doc/howto/logging-cookbook.rst:2081 msgid "Configuring filters with :func:`dictConfig`" @@ -1620,37 +1708,39 @@ msgstr "Configurar filtros con :func:`dictConfig`" #: ../Doc/howto/logging-cookbook.rst:2083 msgid "" -"You *can* configure filters using :func:`~logging.config.dictConfig`, though it " -"might not be obvious at first glance how to do it (hence this recipe). Since :class:" -"`~logging.Filter` is the only filter class included in the standard library, and it " -"is unlikely to cater to many requirements (it's only there as a base class), you " -"will typically need to define your own :class:`~logging.Filter` subclass with an " -"overridden :meth:`~logging.Filter.filter` method. To do this, specify the ``()`` key " -"in the configuration dictionary for the filter, specifying a callable which will be " -"used to create the filter (a class is the most obvious, but you can provide any " -"callable which returns a :class:`~logging.Filter` instance). Here is a complete " -"example::" +"You *can* configure filters using :func:`~logging.config.dictConfig`, though " +"it might not be obvious at first glance how to do it (hence this recipe). " +"Since :class:`~logging.Filter` is the only filter class included in the " +"standard library, and it is unlikely to cater to many requirements (it's " +"only there as a base class), you will typically need to define your own :" +"class:`~logging.Filter` subclass with an overridden :meth:`~logging.Filter." +"filter` method. To do this, specify the ``()`` key in the configuration " +"dictionary for the filter, specifying a callable which will be used to " +"create the filter (a class is the most obvious, but you can provide any " +"callable which returns a :class:`~logging.Filter` instance). Here is a " +"complete example::" msgstr "" -"*Puedes* configurar filtros usando :func:`~logging.config.dictConfig`, aunque a " -"primera vista es posible que no sea obvio cómo hacerlo (de ahí esta receta). Dado " -"que :class:`~logging.Filter` es la única clase de filtro incluida en la biblioteca " -"estándar, y es poco probable que satisfaga muchos requisitos (solo está allí como " -"clase base), normalmente necesitarás definir tu propia subclase :class:`~logging." -"Filter` con un método :meth:`~logging.Filter.filter` sobreescrito. Para hacer esto, " -"especifique la clave ``()`` en el diccionario de configuración para el filtro, " -"especificando un invocable que se usará para crear el filtro (una clase es la más " -"obvia, pero puede proporcionar cualquier invocable que devuelva una instancia :class:" -"`~logging.Filter`). Aquí hay un ejemplo completo:" +"*Puedes* configurar filtros usando :func:`~logging.config.dictConfig`, " +"aunque a primera vista es posible que no sea obvio cómo hacerlo (de ahí esta " +"receta). Dado que :class:`~logging.Filter` es la única clase de filtro " +"incluida en la biblioteca estándar, y es poco probable que satisfaga muchos " +"requisitos (solo está allí como clase base), normalmente necesitarás definir " +"tu propia subclase :class:`~logging.Filter` con un método :meth:`~logging." +"Filter.filter` sobreescrito. Para hacer esto, especifique la clave ``()`` en " +"el diccionario de configuración para el filtro, especificando un invocable " +"que se usará para crear el filtro (una clase es la más obvia, pero puede " +"proporcionar cualquier invocable que devuelva una instancia :class:`~logging." +"Filter`). Aquí hay un ejemplo completo:" #: ../Doc/howto/logging-cookbook.rst:2136 msgid "" "This example shows how you can pass configuration data to the callable which " -"constructs the instance, in the form of keyword parameters. When run, the above " -"script will print:" +"constructs the instance, in the form of keyword parameters. When run, the " +"above script will print:" msgstr "" -"Este ejemplo muestra cómo puede pasar datos de configuración al invocable que " -"construye la instancia, en forma de parámetros de palabras clave. Cuando se ejecuta, " -"se imprimirá el script anterior:" +"Este ejemplo muestra cómo puede pasar datos de configuración al invocable " +"que construye la instancia, en forma de parámetros de palabras clave. Cuando " +"se ejecuta, se imprimirá el script anterior:" #: ../Doc/howto/logging-cookbook.rst:2144 msgid "which shows that the filter is working as configured." @@ -1662,31 +1752,33 @@ msgstr "Un par de puntos adicionales a tener en cuenta:" #: ../Doc/howto/logging-cookbook.rst:2148 msgid "" -"If you can't refer to the callable directly in the configuration (e.g. if it lives " -"in a different module, and you can't import it directly where the configuration " -"dictionary is), you can use the form ``ext://...`` as described in :ref:`logging-" -"config-dict-externalobj`. For example, you could have used the text ``'ext://" -"__main__.MyFilter'`` instead of ``MyFilter`` in the above example." +"If you can't refer to the callable directly in the configuration (e.g. if it " +"lives in a different module, and you can't import it directly where the " +"configuration dictionary is), you can use the form ``ext://...`` as " +"described in :ref:`logging-config-dict-externalobj`. For example, you could " +"have used the text ``'ext://__main__.MyFilter'`` instead of ``MyFilter`` in " +"the above example." msgstr "" -"Si no puede hacer referencia al invocable directamente en la configuración (por " -"ejemplo, si vive en un módulo diferente y no puede importarlo directamente donde " -"está el diccionario de configuración), puede usar el formulario ``ext://...`` como " -"se describe en :ref:`logging-config-dict-externalobj`. Por ejemplo, podría haber " -"usado el texto ``'ext://__main__.MyFilter'`` en lugar de ``MyFilter`` en el ejemplo " -"anterior." +"Si no puede hacer referencia al invocable directamente en la configuración " +"(por ejemplo, si vive en un módulo diferente y no puede importarlo " +"directamente donde está el diccionario de configuración), puede usar el " +"formulario ``ext://...`` como se describe en :ref:`logging-config-dict-" +"externalobj`. Por ejemplo, podría haber usado el texto ``'ext://__main__." +"MyFilter'`` en lugar de ``MyFilter`` en el ejemplo anterior." #: ../Doc/howto/logging-cookbook.rst:2155 msgid "" -"As well as for filters, this technique can also be used to configure custom handlers " -"and formatters. See :ref:`logging-config-dict-userdef` for more information on how " -"logging supports using user-defined objects in its configuration, and see the other " -"cookbook recipe :ref:`custom-handlers` above." +"As well as for filters, this technique can also be used to configure custom " +"handlers and formatters. See :ref:`logging-config-dict-userdef` for more " +"information on how logging supports using user-defined objects in its " +"configuration, and see the other cookbook recipe :ref:`custom-handlers` " +"above." msgstr "" -"Además de los filtros, esta técnica también se puede utilizar para configurar " -"gestores y formateadores personalizados. Consultar :ref:`logging-config-dict-" -"userdef` para obtener más información sobre cómo logging admite el uso de objetos " -"definidos por el usuario en su configuración, y ver arriba la otra receta :ref:" -"`custom-handlers`." +"Además de los filtros, esta técnica también se puede utilizar para " +"configurar gestores y formateadores personalizados. Consultar :ref:`logging-" +"config-dict-userdef` para obtener más información sobre cómo logging admite " +"el uso de objetos definidos por el usuario en su configuración, y ver arriba " +"la otra receta :ref:`custom-handlers`." #: ../Doc/howto/logging-cookbook.rst:2164 msgid "Customized exception formatting" @@ -1694,15 +1786,16 @@ msgstr "Formato de excepción personalizado" #: ../Doc/howto/logging-cookbook.rst:2166 msgid "" -"There might be times when you want to do customized exception formatting - for " -"argument's sake, let's say you want exactly one line per logged event, even when " -"exception information is present. You can do this with a custom formatter class, as " -"shown in the following example::" +"There might be times when you want to do customized exception formatting - " +"for argument's sake, let's say you want exactly one line per logged event, " +"even when exception information is present. You can do this with a custom " +"formatter class, as shown in the following example::" msgstr "" -"Puede haber ocasiones en las que desee personalizar un formato de excepción; por el " -"bien del argumento, digamos que desea exactamente una línea por evento registrado, " -"incluso cuando la información de la excepción está presente. Puede hacer esto con " -"una clase de formateador personalizada, como se muestra en el siguiente ejemplo::" +"Puede haber ocasiones en las que desee personalizar un formato de excepción; " +"por el bien del argumento, digamos que desea exactamente una línea por " +"evento registrado, incluso cuando la información de la excepción está " +"presente. Puede hacer esto con una clase de formateador personalizada, como " +"se muestra en el siguiente ejemplo::" #: ../Doc/howto/logging-cookbook.rst:2207 msgid "When run, this produces a file with exactly two lines:" @@ -1711,12 +1804,12 @@ msgstr "Cuando se ejecuta, esto produce un archivo con exactamente dos líneas:" #: ../Doc/howto/logging-cookbook.rst:2214 msgid "" "While the above treatment is simplistic, it points the way to how exception " -"information can be formatted to your liking. The :mod:`traceback` module may be " -"helpful for more specialized needs." +"information can be formatted to your liking. The :mod:`traceback` module may " +"be helpful for more specialized needs." msgstr "" -"Si bien el tratamiento anterior es simplista, señala el camino hacia cómo se puede " -"formatear la información de excepción a su gusto. El módulo :mod:`traceback` puede " -"resultar útil para necesidades más especializadas." +"Si bien el tratamiento anterior es simplista, señala el camino hacia cómo se " +"puede formatear la información de excepción a su gusto. El módulo :mod:" +"`traceback` puede resultar útil para necesidades más especializadas." #: ../Doc/howto/logging-cookbook.rst:2221 msgid "Speaking logging messages" @@ -1724,124 +1817,132 @@ msgstr "Mensajes de registro hablantes" #: ../Doc/howto/logging-cookbook.rst:2223 msgid "" -"There might be situations when it is desirable to have logging messages rendered in " -"an audible rather than a visible format. This is easy to do if you have text-to-" -"speech (TTS) functionality available in your system, even if it doesn't have a " -"Python binding. Most TTS systems have a command line program you can run, and this " -"can be invoked from a handler using :mod:`subprocess`. It's assumed here that TTS " -"command line programs won't expect to interact with users or take a long time to " -"complete, and that the frequency of logged messages will be not so high as to swamp " -"the user with messages, and that it's acceptable to have the messages spoken one at " -"a time rather than concurrently, The example implementation below waits for one " -"message to be spoken before the next is processed, and this might cause other " -"handlers to be kept waiting. Here is a short example showing the approach, which " -"assumes that the ``espeak`` TTS package is available::" -msgstr "" -"Puede haber situaciones en las que sea deseable que los mensajes de registro se " -"presenten en un formato audible en lugar de visible. Esto es fácil de hacer si tiene " -"la funcionalidad de texto a voz (*TTS* por sus siglas en inglés) disponible en su " -"sistema, incluso si no tiene un *binding* Python. La mayoría de los sistemas TTS " -"tienen un programa de línea de comandos que puede ejecutar, y esto puede invocarse " -"desde un gestor usando :mod:`subprocess`. Aquí se asume que los programas de línea " -"de comando TTS no esperarán interactuar con los usuarios o tardarán mucho en " -"completarse, y que la frecuencia de los mensajes registrados no será tan alta como " -"para inundar al usuario con mensajes, y que es aceptable que los mensajes se " -"reproducen uno a la vez en lugar de todos al mismo tiempo. La implementación de " -"ejemplo a continuación espera a que se pronuncie un mensaje antes de que se procese " -"el siguiente, y esto puede hacer que otros gestores se mantengan esperando. Aquí hay " -"un breve ejemplo que muestra el enfoque, que asume que el paquete TTS ``espeak`` " -"está disponible::" +"There might be situations when it is desirable to have logging messages " +"rendered in an audible rather than a visible format. This is easy to do if " +"you have text-to-speech (TTS) functionality available in your system, even " +"if it doesn't have a Python binding. Most TTS systems have a command line " +"program you can run, and this can be invoked from a handler using :mod:" +"`subprocess`. It's assumed here that TTS command line programs won't expect " +"to interact with users or take a long time to complete, and that the " +"frequency of logged messages will be not so high as to swamp the user with " +"messages, and that it's acceptable to have the messages spoken one at a time " +"rather than concurrently, The example implementation below waits for one " +"message to be spoken before the next is processed, and this might cause " +"other handlers to be kept waiting. Here is a short example showing the " +"approach, which assumes that the ``espeak`` TTS package is available::" +msgstr "" +"Puede haber situaciones en las que sea deseable que los mensajes de registro " +"se presenten en un formato audible en lugar de visible. Esto es fácil de " +"hacer si tiene la funcionalidad de texto a voz (*TTS* por sus siglas en " +"inglés) disponible en su sistema, incluso si no tiene un *binding* Python. " +"La mayoría de los sistemas TTS tienen un programa de línea de comandos que " +"puede ejecutar, y esto puede invocarse desde un gestor usando :mod:" +"`subprocess`. Aquí se asume que los programas de línea de comando TTS no " +"esperarán interactuar con los usuarios o tardarán mucho en completarse, y " +"que la frecuencia de los mensajes registrados no será tan alta como para " +"inundar al usuario con mensajes, y que es aceptable que los mensajes se " +"reproducen uno a la vez en lugar de todos al mismo tiempo. La implementación " +"de ejemplo a continuación espera a que se pronuncie un mensaje antes de que " +"se procese el siguiente, y esto puede hacer que otros gestores se mantengan " +"esperando. Aquí hay un breve ejemplo que muestra el enfoque, que asume que " +"el paquete TTS ``espeak`` está disponible::" #: ../Doc/howto/logging-cookbook.rst:2265 msgid "" -"When run, this script should say \"Hello\" and then \"Goodbye\" in a female voice." +"When run, this script should say \"Hello\" and then \"Goodbye\" in a female " +"voice." msgstr "" -"Cuando se ejecute, este script debería decir \"Hola\" y luego \"Adiós\" con voz " -"femenina." +"Cuando se ejecute, este script debería decir \"Hola\" y luego \"Adiós\" con " +"voz femenina." #: ../Doc/howto/logging-cookbook.rst:2267 msgid "" -"The above approach can, of course, be adapted to other TTS systems and even other " -"systems altogether which can process messages via external programs run from a " -"command line." +"The above approach can, of course, be adapted to other TTS systems and even " +"other systems altogether which can process messages via external programs " +"run from a command line." msgstr "" -"El enfoque anterior puede, por supuesto, adaptarse a otros sistemas TTS e incluso a " -"otros sistemas que pueden procesar mensajes a través de programas externos " -"ejecutados desde una línea de comando." +"El enfoque anterior puede, por supuesto, adaptarse a otros sistemas TTS e " +"incluso a otros sistemas que pueden procesar mensajes a través de programas " +"externos ejecutados desde una línea de comando." #: ../Doc/howto/logging-cookbook.rst:2275 msgid "Buffering logging messages and outputting them conditionally" -msgstr "Almacenamiento en búfer de mensajes de registro y su salida condicional" +msgstr "" +"Almacenamiento en búfer de mensajes de registro y su salida condicional" #: ../Doc/howto/logging-cookbook.rst:2277 msgid "" -"There might be situations where you want to log messages in a temporary area and " -"only output them if a certain condition occurs. For example, you may want to start " -"logging debug events in a function, and if the function completes without errors, " -"you don't want to clutter the log with the collected debug information, but if there " -"is an error, you want all the debug information to be output as well as the error." +"There might be situations where you want to log messages in a temporary area " +"and only output them if a certain condition occurs. For example, you may " +"want to start logging debug events in a function, and if the function " +"completes without errors, you don't want to clutter the log with the " +"collected debug information, but if there is an error, you want all the " +"debug information to be output as well as the error." msgstr "" -"Puede haber situaciones en las que desee registrar mensajes en un área temporal y " -"solo mostrarlos si se produce una determinada condición. Por ejemplo, es posible que " -"desee comenzar a registrar eventos de depuración en una función, y si la función se " -"completa sin errores, no desea saturar el registro con la información de depuración " -"recopilada; pero si hay un error, desea toda la información de depuración " -"información así como el error." +"Puede haber situaciones en las que desee registrar mensajes en un área " +"temporal y solo mostrarlos si se produce una determinada condición. Por " +"ejemplo, es posible que desee comenzar a registrar eventos de depuración en " +"una función, y si la función se completa sin errores, no desea saturar el " +"registro con la información de depuración recopilada; pero si hay un error, " +"desea toda la información de depuración información así como el error." #: ../Doc/howto/logging-cookbook.rst:2284 msgid "" -"Here is an example which shows how you could do this using a decorator for your " -"functions where you want logging to behave this way. It makes use of the :class:" -"`logging.handlers.MemoryHandler`, which allows buffering of logged events until some " -"condition occurs, at which point the buffered events are ``flushed`` - passed to " -"another handler (the ``target`` handler) for processing. By default, the " -"``MemoryHandler`` flushed when its buffer gets filled up or an event whose level is " -"greater than or equal to a specified threshold is seen. You can use this recipe with " -"a more specialised subclass of ``MemoryHandler`` if you want custom flushing " -"behavior." -msgstr "" -"Aquí hay un ejemplo que muestra cómo puede hacer esto usando un decorador para sus " -"funciones donde desea que el registro se comporte de esta manera. Hace uso de :class:" -"`logging.handlers.MemoryHandler`, que permite el almacenamiento en búfer de eventos " -"registrados hasta que se produzca alguna condición, momento en el que los eventos " -"almacenados en búfer se ``flushed`` y se pasan a otro gestor (el gestor ``target``) " -"para su procesamiento. De forma predeterminada, el ``MemoryHandler`` se vacía cuando " -"su búfer se llena o se ve un evento cuyo nivel es mayor o igual a un umbral " -"especificado. Puede usar esta receta con una subclase más especializada de " +"Here is an example which shows how you could do this using a decorator for " +"your functions where you want logging to behave this way. It makes use of " +"the :class:`logging.handlers.MemoryHandler`, which allows buffering of " +"logged events until some condition occurs, at which point the buffered " +"events are ``flushed`` - passed to another handler (the ``target`` handler) " +"for processing. By default, the ``MemoryHandler`` flushed when its buffer " +"gets filled up or an event whose level is greater than or equal to a " +"specified threshold is seen. You can use this recipe with a more specialised " +"subclass of ``MemoryHandler`` if you want custom flushing behavior." +msgstr "" +"Aquí hay un ejemplo que muestra cómo puede hacer esto usando un decorador " +"para sus funciones donde desea que el registro se comporte de esta manera. " +"Hace uso de :class:`logging.handlers.MemoryHandler`, que permite el " +"almacenamiento en búfer de eventos registrados hasta que se produzca alguna " +"condición, momento en el que los eventos almacenados en búfer se ``flushed`` " +"y se pasan a otro gestor (el gestor ``target``) para su procesamiento. De " +"forma predeterminada, el ``MemoryHandler`` se vacía cuando su búfer se llena " +"o se ve un evento cuyo nivel es mayor o igual a un umbral especificado. " +"Puede usar esta receta con una subclase más especializada de " "``MemoryHandler`` si desea un comportamiento de descarga personalizado." #: ../Doc/howto/logging-cookbook.rst:2294 msgid "" -"The example script has a simple function, ``foo``, which just cycles through all the " -"logging levels, writing to ``sys.stderr`` to say what level it's about to log at, " -"and then actually logging a message at that level. You can pass a parameter to " -"``foo`` which, if true, will log at ERROR and CRITICAL levels - otherwise, it only " -"logs at DEBUG, INFO and WARNING levels." +"The example script has a simple function, ``foo``, which just cycles through " +"all the logging levels, writing to ``sys.stderr`` to say what level it's " +"about to log at, and then actually logging a message at that level. You can " +"pass a parameter to ``foo`` which, if true, will log at ERROR and CRITICAL " +"levels - otherwise, it only logs at DEBUG, INFO and WARNING levels." msgstr "" -"El script de ejemplo tiene una función simple, ``foo``, que recorre todos los " -"niveles de registro, escribiendo en ``sys.stderr`` para decir en qué nivel está a " -"punto de *loguear* y luego registrar un mensaje en ese nivel. Puede pasar un " -"parámetro a ``foo`` que, si es verdadero, se registrará en los niveles ERROR y " -"CRITICAL; de lo contrario, solo registrará en los niveles DEBUG, INFO y WARNING." +"El script de ejemplo tiene una función simple, ``foo``, que recorre todos " +"los niveles de registro, escribiendo en ``sys.stderr`` para decir en qué " +"nivel está a punto de *loguear* y luego registrar un mensaje en ese nivel. " +"Puede pasar un parámetro a ``foo`` que, si es verdadero, se registrará en " +"los niveles ERROR y CRITICAL; de lo contrario, solo registrará en los " +"niveles DEBUG, INFO y WARNING." #: ../Doc/howto/logging-cookbook.rst:2300 msgid "" -"The script just arranges to decorate ``foo`` with a decorator which will do the " -"conditional logging that's required. The decorator takes a logger as a parameter and " -"attaches a memory handler for the duration of the call to the decorated function. " -"The decorator can be additionally parameterised using a target handler, a level at " -"which flushing should occur, and a capacity for the buffer (number of records " -"buffered). These default to a :class:`~logging.StreamHandler` which writes to ``sys." -"stderr``, ``logging.ERROR`` and ``100`` respectively." -msgstr "" -"El script simplemente dispone decorar ``foo`` con un decorador que hará el logging " -"condicional que se requiere. El decorador toma un registrador como parámetro y " -"adjunta un gestor de memoria durante la duración de la llamada a la función " -"decorada. El decorador se puede parametrizar adicionalmente utilizando un gestor " -"*target*, un nivel en el que debe producirse el vaciado y una capacidad para el " -"búfer (número de registros almacenados en búfer). Estos están predeterminados a :" -"class:`~logging.StreamHandler` que escribe en``sys.stderr``, ``logging.ERROR`` y " -"``100`` respectivamente." +"The script just arranges to decorate ``foo`` with a decorator which will do " +"the conditional logging that's required. The decorator takes a logger as a " +"parameter and attaches a memory handler for the duration of the call to the " +"decorated function. The decorator can be additionally parameterised using a " +"target handler, a level at which flushing should occur, and a capacity for " +"the buffer (number of records buffered). These default to a :class:`~logging." +"StreamHandler` which writes to ``sys.stderr``, ``logging.ERROR`` and ``100`` " +"respectively." +msgstr "" +"El script simplemente dispone decorar ``foo`` con un decorador que hará el " +"logging condicional que se requiere. El decorador toma un registrador como " +"parámetro y adjunta un gestor de memoria durante la duración de la llamada a " +"la función decorada. El decorador se puede parametrizar adicionalmente " +"utilizando un gestor *target*, un nivel en el que debe producirse el vaciado " +"y una capacidad para el búfer (número de registros almacenados en búfer). " +"Estos están predeterminados a :class:`~logging.StreamHandler` que escribe " +"en``sys.stderr``, ``logging.ERROR`` y ``100`` respectivamente." #: ../Doc/howto/logging-cookbook.rst:2308 msgid "Here's the script::" @@ -1849,17 +1950,18 @@ msgstr "Aquí está el script::" #: ../Doc/howto/logging-cookbook.rst:2371 msgid "When this script is run, the following output should be observed:" -msgstr "Cuando se ejecuta este script, se debe observar el siguiente resultado::" +msgstr "" +"Cuando se ejecuta este script, se debe observar el siguiente resultado::" #: ../Doc/howto/logging-cookbook.rst:2401 msgid "" -"As you can see, actual logging output only occurs when an event is logged whose " -"severity is ERROR or greater, but in that case, any previous events at lower " -"severities are also logged." +"As you can see, actual logging output only occurs when an event is logged " +"whose severity is ERROR or greater, but in that case, any previous events at " +"lower severities are also logged." msgstr "" -"Como puede ver, la salida real de logging solo ocurre cuando se registra un evento " -"cuya gravedad es ERROR o mayor, pero en ese caso, también se registra cualquier " -"evento anterior con una gravedad menor." +"Como puede ver, la salida real de logging solo ocurre cuando se registra un " +"evento cuya gravedad es ERROR o mayor, pero en ese caso, también se registra " +"cualquier evento anterior con una gravedad menor." #: ../Doc/howto/logging-cookbook.rst:2405 msgid "You can of course use the conventional means of decoration::" @@ -1871,23 +1973,23 @@ msgstr "Formateo de horas usando UTC (GMT) a través de la configuración" #: ../Doc/howto/logging-cookbook.rst:2417 msgid "" -"Sometimes you want to format times using UTC, which can be done using a class such " -"as `UTCFormatter`, shown below::" +"Sometimes you want to format times using UTC, which can be done using a " +"class such as `UTCFormatter`, shown below::" msgstr "" -"A veces desea formatear las horas usando UTC, lo que se puede hacer usando una clase " -"como `UTCFormatter`, como se muestra a continuación::" +"A veces desea formatear las horas usando UTC, lo que se puede hacer usando " +"una clase como `UTCFormatter`, como se muestra a continuación::" #: ../Doc/howto/logging-cookbook.rst:2426 msgid "" -"and you can then use the ``UTCFormatter`` in your code instead of :class:`~logging." -"Formatter`. If you want to do that via configuration, you can use the :func:" -"`~logging.config.dictConfig` API with an approach illustrated by the following " -"complete example::" +"and you can then use the ``UTCFormatter`` in your code instead of :class:" +"`~logging.Formatter`. If you want to do that via configuration, you can use " +"the :func:`~logging.config.dictConfig` API with an approach illustrated by " +"the following complete example::" msgstr "" -"y luego puede usar el ``UTCFormatter`` en su código en lugar de :class:`~logging." -"Formatter`. Si desea hacer eso a través de la configuración, puede usar la API :func:" -"`~logging.config.dictConfig` con un enfoque ilustrado por el siguiente ejemplo " -"completo::" +"y luego puede usar el ``UTCFormatter`` en su código en lugar de :class:" +"`~logging.Formatter`. Si desea hacer eso a través de la configuración, puede " +"usar la API :func:`~logging.config.dictConfig` con un enfoque ilustrado por " +"el siguiente ejemplo completo::" #: ../Doc/howto/logging-cookbook.rst:2469 msgid "When this script is run, it should print something like:" @@ -1895,9 +1997,11 @@ msgstr "Cuando se ejecuta este script, debería imprimir algo como:" #: ../Doc/howto/logging-cookbook.rst:2476 msgid "" -"showing how the time is formatted both as local time and UTC, one for each handler." +"showing how the time is formatted both as local time and UTC, one for each " +"handler." msgstr "" -"mostrando cómo se formatea la hora como hora local y UTC, una para cada gestor." +"mostrando cómo se formatea la hora como hora local y UTC, una para cada " +"gestor." #: ../Doc/howto/logging-cookbook.rst:2483 msgid "Using a context manager for selective logging" @@ -1906,61 +2010,67 @@ msgstr "Usar un administrador de contexto para logging selectivo" #: ../Doc/howto/logging-cookbook.rst:2485 msgid "" "There are times when it would be useful to temporarily change the logging " -"configuration and revert it back after doing something. For this, a context manager " -"is the most obvious way of saving and restoring the logging context. Here is a " -"simple example of such a context manager, which allows you to optionally change the " -"logging level and add a logging handler purely in the scope of the context manager::" -msgstr "" -"Hay ocasiones en las que sería útil cambiar temporalmente la configuración de " -"logging y revertir esto después de hacer algo. Para ello, un administrador de " -"contexto es la forma más obvia de guardar y restaurar el contexto de logging. Aquí " -"hay un ejemplo simple de un administrador de contexto de este tipo, que le permite " -"cambiar opcionalmente el nivel de registro y agregar un gestor de registro " -"exclusivamente en el alcance del administrador de contexto::" +"configuration and revert it back after doing something. For this, a context " +"manager is the most obvious way of saving and restoring the logging context. " +"Here is a simple example of such a context manager, which allows you to " +"optionally change the logging level and add a logging handler purely in the " +"scope of the context manager::" +msgstr "" +"Hay ocasiones en las que sería útil cambiar temporalmente la configuración " +"de logging y revertir esto después de hacer algo. Para ello, un " +"administrador de contexto es la forma más obvia de guardar y restaurar el " +"contexto de logging. Aquí hay un ejemplo simple de un administrador de " +"contexto de este tipo, que le permite cambiar opcionalmente el nivel de " +"registro y agregar un gestor de registro exclusivamente en el alcance del " +"administrador de contexto::" #: ../Doc/howto/logging-cookbook.rst:2518 msgid "" -"If you specify a level value, the logger's level is set to that value in the scope " -"of the with block covered by the context manager. If you specify a handler, it is " -"added to the logger on entry to the block and removed on exit from the block. You " -"can also ask the manager to close the handler for you on block exit - you could do " -"this if you don't need the handler any more." +"If you specify a level value, the logger's level is set to that value in the " +"scope of the with block covered by the context manager. If you specify a " +"handler, it is added to the logger on entry to the block and removed on exit " +"from the block. You can also ask the manager to close the handler for you on " +"block exit - you could do this if you don't need the handler any more." msgstr "" -"Si especifica un valor de nivel, el nivel del registrador se establece en ese valor " -"en el alcance del bloque *with* cubierto por el administrador de contexto. Si " -"especifica un gestor, se agrega al registrador al entrar al bloque y se elimina al " -"salir del bloque. También puede pedirle al administrador que cierre el gestor por " -"usted al salir del bloque si ya no lo necesita." +"Si especifica un valor de nivel, el nivel del registrador se establece en " +"ese valor en el alcance del bloque *with* cubierto por el administrador de " +"contexto. Si especifica un gestor, se agrega al registrador al entrar al " +"bloque y se elimina al salir del bloque. También puede pedirle al " +"administrador que cierre el gestor por usted al salir del bloque si ya no lo " +"necesita." #: ../Doc/howto/logging-cookbook.rst:2524 msgid "" -"To illustrate how it works, we can add the following block of code to the above::" +"To illustrate how it works, we can add the following block of code to the " +"above::" msgstr "" -"Para ilustrar cómo funciona, podemos agregar el siguiente bloque de código al " -"anterior::" +"Para ilustrar cómo funciona, podemos agregar el siguiente bloque de código " +"al anterior::" #: ../Doc/howto/logging-cookbook.rst:2542 msgid "" -"We initially set the logger's level to ``INFO``, so message #1 appears and message " -"#2 doesn't. We then change the level to ``DEBUG`` temporarily in the following " -"``with`` block, and so message #3 appears. After the block exits, the logger's level " -"is restored to ``INFO`` and so message #4 doesn't appear. In the next ``with`` " -"block, we set the level to ``DEBUG`` again but also add a handler writing to ``sys." -"stdout``. Thus, message #5 appears twice on the console (once via ``stderr`` and " -"once via ``stdout``). After the ``with`` statement's completion, the status is as it " -"was before so message #6 appears (like message #1) whereas message #7 doesn't (just " -"like message #2)." -msgstr "" -"Inicialmente configuramos el nivel del registrador en ``INFO``, por lo que aparece " -"el mensaje #1 y el mensaje #2 no. Luego cambiamos el nivel a ``DEBUG`` temporalmente " -"en el siguiente bloque ``with``, y aparece el mensaje #3. Una vez que se sale del " -"bloque, el nivel del registrador se restaura a ``INFO`` y, por lo tanto, el mensaje " -"#4 no aparece. En el siguiente bloque ``with``, configuramos el nivel en ``DEBUG`` " -"nuevamente, pero también agregamos un gestor que escribe en ``sys.stdout``. Por lo " -"tanto, el mensaje #5 aparece dos veces en la consola (una vez a través de ``stderr`` " -"y una vez a través de ``stdout``). Después de la finalización de la declaración " -"``with``, se vuelve al estado anterior, por lo que aparece el mensaje #6 (como el " -"mensaje #1) mientras que el mensaje #7 no (como el mensaje #2)." +"We initially set the logger's level to ``INFO``, so message #1 appears and " +"message #2 doesn't. We then change the level to ``DEBUG`` temporarily in the " +"following ``with`` block, and so message #3 appears. After the block exits, " +"the logger's level is restored to ``INFO`` and so message #4 doesn't appear. " +"In the next ``with`` block, we set the level to ``DEBUG`` again but also add " +"a handler writing to ``sys.stdout``. Thus, message #5 appears twice on the " +"console (once via ``stderr`` and once via ``stdout``). After the ``with`` " +"statement's completion, the status is as it was before so message #6 appears " +"(like message #1) whereas message #7 doesn't (just like message #2)." +msgstr "" +"Inicialmente configuramos el nivel del registrador en ``INFO``, por lo que " +"aparece el mensaje #1 y el mensaje #2 no. Luego cambiamos el nivel a " +"``DEBUG`` temporalmente en el siguiente bloque ``with``, y aparece el " +"mensaje #3. Una vez que se sale del bloque, el nivel del registrador se " +"restaura a ``INFO`` y, por lo tanto, el mensaje #4 no aparece. En el " +"siguiente bloque ``with``, configuramos el nivel en ``DEBUG`` nuevamente, " +"pero también agregamos un gestor que escribe en ``sys.stdout``. Por lo " +"tanto, el mensaje #5 aparece dos veces en la consola (una vez a través de " +"``stderr`` y una vez a través de ``stdout``). Después de la finalización de " +"la declaración ``with``, se vuelve al estado anterior, por lo que aparece el " +"mensaje #6 (como el mensaje #1) mientras que el mensaje #7 no (como el " +"mensaje #2)." #: ../Doc/howto/logging-cookbook.rst:2552 msgid "If we run the resulting script, the result is as follows:" @@ -1968,30 +2078,33 @@ msgstr "Si ejecutamos el script resultante, el resultado es el siguiente:" #: ../Doc/howto/logging-cookbook.rst:2563 msgid "" -"If we run it again, but pipe ``stderr`` to ``/dev/null``, we see the following, " -"which is the only message written to ``stdout``:" +"If we run it again, but pipe ``stderr`` to ``/dev/null``, we see the " +"following, which is the only message written to ``stdout``:" msgstr "" -"Si lo ejecutamos de nuevo, pero dirigimos ``stderr`` a ``/dev/null``, vemos lo " -"siguiente, que es el único mensaje escrito en ``stdout``:" +"Si lo ejecutamos de nuevo, pero dirigimos ``stderr`` a ``/dev/null``, vemos " +"lo siguiente, que es el único mensaje escrito en ``stdout``:" #: ../Doc/howto/logging-cookbook.rst:2571 msgid "Once again, but piping ``stdout`` to ``/dev/null``, we get:" msgstr "Una vez más, pero canalizando ``stdout`` a ``/dev/null``, obtenemos:" #: ../Doc/howto/logging-cookbook.rst:2581 -msgid "In this case, the message #5 printed to ``stdout`` doesn't appear, as expected." +msgid "" +"In this case, the message #5 printed to ``stdout`` doesn't appear, as " +"expected." msgstr "" -"En este caso, el mensaje #5 impreso en ``stdout`` no aparece, como se esperaba." +"En este caso, el mensaje #5 impreso en ``stdout`` no aparece, como se " +"esperaba." #: ../Doc/howto/logging-cookbook.rst:2583 msgid "" -"Of course, the approach described here can be generalised, for example to attach " -"logging filters temporarily. Note that the above code works in Python 2 as well as " -"Python 3." +"Of course, the approach described here can be generalised, for example to " +"attach logging filters temporarily. Note that the above code works in Python " +"2 as well as Python 3." msgstr "" -"Por supuesto, el enfoque descrito aquí puede generalizarse, por ejemplo, para " -"adjuntar filtros de logging temporalmente. Tenga en cuenta que el código anterior " -"funciona tanto en Python 2 como en Python 3." +"Por supuesto, el enfoque descrito aquí puede generalizarse, por ejemplo, " +"para adjuntar filtros de logging temporalmente. Tenga en cuenta que el " +"código anterior funciona tanto en Python 2 como en Python 3." #: ../Doc/howto/logging-cookbook.rst:2591 msgid "A CLI application starter template" @@ -2003,15 +2116,16 @@ msgstr "Aquí hay un ejemplo que muestra cómo puede:" #: ../Doc/howto/logging-cookbook.rst:2595 msgid "Use a logging level based on command-line arguments" -msgstr "Utilizar un nivel de logging basado en argumentos de la línea de comandos" +msgstr "" +"Utilizar un nivel de logging basado en argumentos de la línea de comandos" #: ../Doc/howto/logging-cookbook.rst:2596 msgid "" -"Dispatch to multiple subcommands in separate files, all logging at the same level in " -"a consistent way" +"Dispatch to multiple subcommands in separate files, all logging at the same " +"level in a consistent way" msgstr "" -"Enviar a varios subcomandos en archivos separados, todos registrando en el mismo " -"nivel de forma coherente" +"Enviar a varios subcomandos en archivos separados, todos registrando en el " +"mismo nivel de forma coherente" #: ../Doc/howto/logging-cookbook.rst:2598 msgid "Make use of simple, minimal configuration" @@ -2019,28 +2133,30 @@ msgstr "Utilizar una configuración mínima y sencilla" #: ../Doc/howto/logging-cookbook.rst:2600 msgid "" -"Suppose we have a command-line application whose job is to stop, start or restart " -"some services. This could be organised for the purposes of illustration as a file " -"``app.py`` that is the main script for the application, with individual commands " -"implemented in ``start.py``, ``stop.py`` and ``restart.py``. Suppose further that we " -"want to control the verbosity of the application via a command-line argument, " -"defaulting to ``logging.INFO``. Here's one way that ``app.py`` could be written::" -msgstr "" -"Supongamos que tenemos una aplicación de línea de comandos cuyo trabajo es detener, " -"iniciar o reiniciar algunos servicios. Esto podría organizarse con fines " -"ilustrativos como un archivo ``app.py`` que es el script principal de la aplicación, " -"con comandos individuales implementados en ``start.py``, ``stop.py`` y ``restart." -"py``. Supongamos además que queremos controlar la verbosidad de la aplicación a " -"través de un argumento de línea de comandos, por defecto en ``logging.INFO``. Aquí " -"hay una forma en que se podría escribir ``app.py``::" +"Suppose we have a command-line application whose job is to stop, start or " +"restart some services. This could be organised for the purposes of " +"illustration as a file ``app.py`` that is the main script for the " +"application, with individual commands implemented in ``start.py``, ``stop." +"py`` and ``restart.py``. Suppose further that we want to control the " +"verbosity of the application via a command-line argument, defaulting to " +"``logging.INFO``. Here's one way that ``app.py`` could be written::" +msgstr "" +"Supongamos que tenemos una aplicación de línea de comandos cuyo trabajo es " +"detener, iniciar o reiniciar algunos servicios. Esto podría organizarse con " +"fines ilustrativos como un archivo ``app.py`` que es el script principal de " +"la aplicación, con comandos individuales implementados en ``start.py``, " +"``stop.py`` y ``restart.py``. Supongamos además que queremos controlar la " +"verbosidad de la aplicación a través de un argumento de línea de comandos, " +"por defecto en ``logging.INFO``. Aquí hay una forma en que se podría " +"escribir ``app.py``::" #: ../Doc/howto/logging-cookbook.rst:2649 msgid "" -"And the ``start``, ``stop`` and ``restart`` commands can be implemented in separate " -"modules, like so for starting::" +"And the ``start``, ``stop`` and ``restart`` commands can be implemented in " +"separate modules, like so for starting::" msgstr "" -"Y los comandos ``start``, ``stop`` y ``reiniciar`` se pueden implementar en módulos " -"separados, como para iniciar::" +"Y los comandos ``start``, ``stop`` y ``reiniciar`` se pueden implementar en " +"módulos separados, como para iniciar::" #: ../Doc/howto/logging-cookbook.rst:2662 msgid "and thus for stopping::" @@ -2051,23 +2167,25 @@ msgid "and similarly for restarting::" msgstr "y de manera similar para reiniciar::" #: ../Doc/howto/logging-cookbook.rst:2704 -msgid "If we run this application with the default log level, we get output like this:" +msgid "" +"If we run this application with the default log level, we get output like " +"this:" msgstr "" -"Si ejecutamos esta aplicación con el nivel de registro predeterminado, obtenemos un " -"resultado como este:" +"Si ejecutamos esta aplicación con el nivel de registro predeterminado, " +"obtenemos un resultado como este:" #: ../Doc/howto/logging-cookbook.rst:2717 msgid "" -"The first word is the logging level, and the second word is the module or package " -"name of the place where the event was logged." +"The first word is the logging level, and the second word is the module or " +"package name of the place where the event was logged." msgstr "" -"La primera palabra es el nivel de logging y la segunda palabra es el nombre del " -"módulo o paquete del lugar donde se registró el evento." +"La primera palabra es el nivel de logging y la segunda palabra es el nombre " +"del módulo o paquete del lugar donde se registró el evento." #: ../Doc/howto/logging-cookbook.rst:2720 msgid "" -"If we change the logging level, then we can change the information sent to the log. " -"For example, if we want more information:" +"If we change the logging level, then we can change the information sent to " +"the log. For example, if we want more information:" msgstr "" "Si cambiamos el nivel de logging, podemos cambiar la información enviada al " "registro. Por ejemplo, si queremos más información:" @@ -2078,11 +2196,11 @@ msgstr "Y si queremos menos:" #: ../Doc/howto/logging-cookbook.rst:2745 msgid "" -"In this case, the commands don't print anything to the console, since nothing at " -"``WARNING`` level or above is logged by them." +"In this case, the commands don't print anything to the console, since " +"nothing at ``WARNING`` level or above is logged by them." msgstr "" -"En este caso, los comandos no imprimen nada en la consola, ya que no registran nada " -"en el nivel de ``WARNING`` o superior." +"En este caso, los comandos no imprimen nada en la consola, ya que no " +"registran nada en el nivel de ``WARNING`` o superior." #: ../Doc/howto/logging-cookbook.rst:2751 msgid "A Qt GUI for logging" @@ -2090,49 +2208,54 @@ msgstr "Una GUI de Qt para logging" #: ../Doc/howto/logging-cookbook.rst:2753 msgid "" -"A question that comes up from time to time is about how to log to a GUI application. " -"The `Qt `_ framework is a popular cross-platform UI framework " -"with Python bindings using `PySide2 `_ or `PyQt5 " -"`_ libraries." +"A question that comes up from time to time is about how to log to a GUI " +"application. The `Qt `_ framework is a popular cross-" +"platform UI framework with Python bindings using `PySide2 `_ or `PyQt5 `_ libraries." msgstr "" -"Una pregunta que surge de vez en cuando es sobre cómo *loggear* en una aplicación " -"GUI. El *framework* `Qt ` _ es un *framework* popular " -"multiplataforma con bindings de Python que usan PySide2 `_ o librerías `PyQt5 `_ ." +"Una pregunta que surge de vez en cuando es sobre cómo *loggear* en una " +"aplicación GUI. El *framework* `Qt ` _ es un *framework* " +"popular multiplataforma con bindings de Python que usan PySide2 `_ o librerías `PyQt5 `_ ." #: ../Doc/howto/logging-cookbook.rst:2759 msgid "" "The following example shows how to log to a Qt GUI. This introduces a simple " -"``QtHandler`` class which takes a callable, which should be a slot in the main " -"thread that does GUI updates. A worker thread is also created to show how you can " -"log to the GUI from both the UI itself (via a button for manual logging) as well as " -"a worker thread doing work in the background (here, just logging messages at random " -"levels with random short delays in between)." -msgstr "" -"El siguiente ejemplo muestra cómo iniciar sesión en una GUI de Qt. Esto introduce " -"una clase simple ``QtHandler`` que toma un invocable, que debería ser un slot en el " -"hilo principal que realiza actualizaciones de la GUI. También se crea un hilo de " -"trabajo para mostrar cómo puede iniciar sesión en la GUI tanto desde la propia " -"interfaz de usuario (a través de un botón para el registro manual) como desde un " -"hilo de trabajo que trabaja en segundo plano (aquí, simplemente registrando mensajes " -"en niveles aleatorios con aleatorio breves retrasos intermedios)." +"``QtHandler`` class which takes a callable, which should be a slot in the " +"main thread that does GUI updates. A worker thread is also created to show " +"how you can log to the GUI from both the UI itself (via a button for manual " +"logging) as well as a worker thread doing work in the background (here, just " +"logging messages at random levels with random short delays in between)." +msgstr "" +"El siguiente ejemplo muestra cómo iniciar sesión en una GUI de Qt. Esto " +"introduce una clase simple ``QtHandler`` que toma un invocable, que debería " +"ser un slot en el hilo principal que realiza actualizaciones de la GUI. " +"También se crea un hilo de trabajo para mostrar cómo puede iniciar sesión en " +"la GUI tanto desde la propia interfaz de usuario (a través de un botón para " +"el registro manual) como desde un hilo de trabajo que trabaja en segundo " +"plano (aquí, simplemente registrando mensajes en niveles aleatorios con " +"aleatorio breves retrasos intermedios)." #: ../Doc/howto/logging-cookbook.rst:2766 msgid "" -"The worker thread is implemented using Qt's ``QThread`` class rather than the :mod:" -"`threading` module, as there are circumstances where one has to use ``QThread``, " -"which offers better integration with other ``Qt`` components." +"The worker thread is implemented using Qt's ``QThread`` class rather than " +"the :mod:`threading` module, as there are circumstances where one has to use " +"``QThread``, which offers better integration with other ``Qt`` components." msgstr "" -"El hilo *worker* se implementa usando la clase ``QThread`` de Qt en lugar del " -"módulo :mod:`threading`, ya que hay circunstancias en las que uno tiene que usar " -"``QThread``, que ofrece una mejor integración con otros componentes ``Qt``." +"El hilo *worker* se implementa usando la clase ``QThread`` de Qt en lugar " +"del módulo :mod:`threading`, ya que hay circunstancias en las que uno tiene " +"que usar ``QThread``, que ofrece una mejor integración con otros componentes " +"``Qt``." #: ../Doc/howto/logging-cookbook.rst:2770 msgid "" -"The code should work with recent releases of either ``PySide2`` or ``PyQt5``. You " -"should be able to adapt the approach to earlier versions of Qt. Please refer to the " -"comments in the code snippet for more detailed information." +"The code should work with recent releases of either ``PySide2`` or " +"``PyQt5``. You should be able to adapt the approach to earlier versions of " +"Qt. Please refer to the comments in the code snippet for more detailed " +"information." msgstr "" -"El código debería funcionar con versiones recientes de ``PySide2`` o ``PyQt5``. " -"Debería poder adaptar el enfoque a versiones anteriores de Qt. Consulte los " -"comentarios en el fragmento de código para obtener información más detallada." +"El código debería funcionar con versiones recientes de ``PySide2`` o " +"``PyQt5``. Debería poder adaptar el enfoque a versiones anteriores de Qt. " +"Consulte los comentarios en el fragmento de código para obtener información " +"más detallada." From cd14eb87dcba6646836aa40fdac4b9ded4e46df7 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Sat, 10 Oct 2020 15:22:36 -0300 Subject: [PATCH 21/34] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claudia Millán --- howto/logging-cookbook.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 5afc5e0a11..d547af363f 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -415,9 +415,9 @@ msgstr "" "para lograr esto, no siempre es conveniente pasar la información de esta " "manera. Si bien puede resultar tentador crear instancias :class:`Logger` por " "conexión, esta no es una buena idea porque estas instancias no se liberan de " -"memoria vía recolector de basura (*garbage collector*). Si bien esto no es " +"memoria vía el recolector de basura (*garbage collector*). Si bien esto no es " "un problema en la práctica, cuando el número de instancias de :class:" -"`Logger` depende del nivel de granularidad que desea usar para registrar una " +"`Logger` depende del nivel de granularidad que desea usar para hacer el logging de una " "aplicación, podría ser difícil de administrar si el número de instancias :" "class:`Logger` se vuelven efectivamente ilimitadas." From fd284dc32fc99b274923590600a87e84ace2b08e Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Sat, 10 Oct 2020 15:33:31 -0300 Subject: [PATCH 22/34] Update logging-cookbook.po --- howto/logging-cookbook.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index d547af363f..597b0092a8 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -440,9 +440,9 @@ msgstr "" "Una manera fácil de pasar información contextual para que se genere junto " "con la información de eventos logging es usar la clase :class:" "`LoggerAdapter`. Esta clase está diseñada para parecerse a :class:`Logger`, " -"de modo que pueda llamar : meth:`debug`, :meth:`info`, :meth:`warning`, :" +"de modo que pueda llamar :meth:`debug`, :meth:`info`, :meth:`warning`, :" "meth:`error`, :meth:`excepción`, :meth`critical` y :meth:`log`. Estos " -"métodos tienen las mismas características que sus contrapartes en :class:" +"métodos tienen las mismas signaturas que sus contrapartes en :class:" "`Logger`, por lo que puede usar los dos tipos de instancias indistintamente." #: ../Doc/howto/logging-cookbook.rst:574 From 5871ea88f9e13793351103f1bbd05ffaae9dfaf2 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Sat, 17 Oct 2020 21:53:17 -0300 Subject: [PATCH 23/34] powrap --- howto/logging-cookbook.po | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 597b0092a8..8fe2fae63e 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-05 12:54+0200\n" -"PO-Revision-Date: 2020-10-04 16:36-0300\n" +"PO-Revision-Date: 2020-10-17 21:52-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -415,11 +415,11 @@ msgstr "" "para lograr esto, no siempre es conveniente pasar la información de esta " "manera. Si bien puede resultar tentador crear instancias :class:`Logger` por " "conexión, esta no es una buena idea porque estas instancias no se liberan de " -"memoria vía el recolector de basura (*garbage collector*). Si bien esto no es " -"un problema en la práctica, cuando el número de instancias de :class:" -"`Logger` depende del nivel de granularidad que desea usar para hacer el logging de una " -"aplicación, podría ser difícil de administrar si el número de instancias :" -"class:`Logger` se vuelven efectivamente ilimitadas." +"memoria vía el recolector de basura (*garbage collector*). Si bien esto no " +"es un problema en la práctica, cuando el número de instancias de :class:" +"`Logger` depende del nivel de granularidad que desea usar para hacer el " +"logging de una aplicación, podría ser difícil de administrar si el número de " +"instancias :class:`Logger` se vuelven efectivamente ilimitadas." #: ../Doc/howto/logging-cookbook.rst:564 msgid "Using LoggerAdapters to impart contextual information" @@ -440,10 +440,10 @@ msgstr "" "Una manera fácil de pasar información contextual para que se genere junto " "con la información de eventos logging es usar la clase :class:" "`LoggerAdapter`. Esta clase está diseñada para parecerse a :class:`Logger`, " -"de modo que pueda llamar :meth:`debug`, :meth:`info`, :meth:`warning`, :" -"meth:`error`, :meth:`excepción`, :meth`critical` y :meth:`log`. Estos " -"métodos tienen las mismas signaturas que sus contrapartes en :class:" -"`Logger`, por lo que puede usar los dos tipos de instancias indistintamente." +"de modo que pueda llamar :meth:`debug`, :meth:`info`, :meth:`warning`, :meth:" +"`error`, :meth:`excepción`, :meth`critical` y :meth:`log`. Estos métodos " +"tienen las mismas signaturas que sus contrapartes en :class:`Logger`, por lo " +"que puede usar los dos tipos de instancias indistintamente." #: ../Doc/howto/logging-cookbook.rst:574 #, fuzzy From 6809fe3eba43fbb55c0760937a1103289bf724d6 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Fri, 23 Oct 2020 18:51:26 -0300 Subject: [PATCH 24/34] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claudia Millán --- howto/logging-cookbook.po | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 8fe2fae63e..39668a977d 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -427,7 +427,6 @@ msgstr "Uso de LoggerAdapters para impartir información contextual" # "signatures" por "características"? #: ../Doc/howto/logging-cookbook.rst:566 -#, fuzzy msgid "" "An easy way in which you can pass contextual information to be output along " "with logging event information is to use the :class:`LoggerAdapter` class. " @@ -477,8 +476,8 @@ msgid "" "be silently overwritten." msgstr "" "El método :meth:`~LoggerAdapter.process` de :class:`LoggerAdapter` es donde " -"la información contextual se agrega a la salida del registro. Se pasa el " -"mensaje y los argumentos de palabra clave de la llamada logging, y devuelve " +"la información contextual se agrega a la salida del logging. Se pasa el " +"mensaje y los argumentos de palabra clave de la llamada logging, y retorna " "versiones (potencialmente) modificadas de estos para usar en la llamada al " "logging subyacente. La implementación predeterminada de este método deja el " "mensaje solo, pero inserta una clave 'extra' en el argumento de palabra " @@ -548,7 +547,7 @@ msgid "" "can then be output using a suitable format string, or if needed a custom :" "class:`Formatter`." msgstr "" -"También puedes agregar información contextual a la salida del registro " +"También puedes agregar información contextual a la salida del log " "utilizando un :class:`Filter` definido por el usuario. Las instancias de " "``Filter`` pueden modificar los ``LogRecords`` que se les pasan, incluido el " "agregado de atributos adicionales que luego se pueden generar utilizando " @@ -601,8 +600,8 @@ msgid "" "includes a working socket receiver which can be used as a starting point for " "you to adapt in your own applications." msgstr "" -"Aunque logging es seguro para subprocesos, y logging a un solo archivo desde " -"múltiples subprocesos en un solo proceso *es* compatible, el registro en un " +"Aunque logging es seguro para hilos, y el logging a un solo archivo desde " +"múltiples hilos en un solo proceso *es* compatible, el logging en un " "solo archivo desde *múltiples procesos* *no* es compatible, porque no existe " "una forma estándar de serializar el acceso a un solo archivo en múltiples " "procesos en Python. Si necesita hacer esto último, una forma de abordarlo es " From 6c407367e6f6506736d7c376bdd836c8e909fd8e Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Fri, 27 Nov 2020 01:15:06 -0300 Subject: [PATCH 25/34] ajuste travis --- howto/logging-cookbook.po | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 39668a977d..faf8c74c67 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-05 12:54+0200\n" -"PO-Revision-Date: 2020-10-17 21:52-0300\n" +"PO-Revision-Date: 2020-11-27 01:14-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -440,7 +440,7 @@ msgstr "" "con la información de eventos logging es usar la clase :class:" "`LoggerAdapter`. Esta clase está diseñada para parecerse a :class:`Logger`, " "de modo que pueda llamar :meth:`debug`, :meth:`info`, :meth:`warning`, :meth:" -"`error`, :meth:`excepción`, :meth`critical` y :meth:`log`. Estos métodos " +"`error`, :meth:`excepción`, :meth:`critical` y :meth:`log`. Estos métodos " "tienen las mismas signaturas que sus contrapartes en :class:`Logger`, por lo " "que puede usar los dos tipos de instancias indistintamente." @@ -547,12 +547,12 @@ msgid "" "can then be output using a suitable format string, or if needed a custom :" "class:`Formatter`." msgstr "" -"También puedes agregar información contextual a la salida del log " -"utilizando un :class:`Filter` definido por el usuario. Las instancias de " -"``Filter`` pueden modificar los ``LogRecords`` que se les pasan, incluido el " -"agregado de atributos adicionales que luego se pueden generar utilizando " -"cadena de caracteres con el formato adecuado, o si es necesario, un :class:" -"`Formatter` personalizado." +"También puedes agregar información contextual a la salida del log utilizando " +"un :class:`Filter` definido por el usuario. Las instancias de ``Filter`` " +"pueden modificar los ``LogRecords`` que se les pasan, incluido el agregado " +"de atributos adicionales que luego se pueden generar utilizando cadena de " +"caracteres con el formato adecuado, o si es necesario, un :class:`Formatter` " +"personalizado." #: ../Doc/howto/logging-cookbook.rst:642 msgid "" @@ -601,9 +601,9 @@ msgid "" "you to adapt in your own applications." msgstr "" "Aunque logging es seguro para hilos, y el logging a un solo archivo desde " -"múltiples hilos en un solo proceso *es* compatible, el logging en un " -"solo archivo desde *múltiples procesos* *no* es compatible, porque no existe " -"una forma estándar de serializar el acceso a un solo archivo en múltiples " +"múltiples hilos en un solo proceso *es* compatible, el logging en un solo " +"archivo desde *múltiples procesos* *no* es compatible, porque no existe una " +"forma estándar de serializar el acceso a un solo archivo en múltiples " "procesos en Python. Si necesita hacer esto último, una forma de abordarlo es " "hacer que todos los procesos se registren en una :class:`~handlers." "SocketHandler`, y tener un proceso separado que implemente un servidor de " From a3c30218ce9cbbff13f46bc096938c2bd0860383 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Tue, 8 Dec 2020 16:06:04 -0300 Subject: [PATCH 26/34] Update howto/logging-cookbook.po --- howto/logging-cookbook.po | 1 - 1 file changed, 1 deletion(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index faf8c74c67..3c334a9a5e 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -1047,7 +1047,6 @@ msgstr "" "registrador de biblioteca de nivel inferior --- así que la salida de ese " "gestor no reflejaría las intenciones del desarrollador de la biblioteca." -# ¿"fábrica"? #: ../Doc/howto/logging-cookbook.rst:1263 #, fuzzy msgid "" From f3abc9214af9b40a98267ac12c625e5d19776a2f Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Fri, 19 Mar 2021 19:36:14 -0300 Subject: [PATCH 27/34] limpio archivo traducido por error --- howto/logging.po | 758 +++++------------------------------------------ 1 file changed, 76 insertions(+), 682 deletions(-) diff --git a/howto/logging.po b/howto/logging.po index 06d6587f25..1795acfe49 100644 --- a/howto/logging.po +++ b/howto/logging.po @@ -9,31 +9,31 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: 2020-10-04 15:40-0300\n" +"PO-Revision-Date: 2021-03-19 19:34-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.4.1\n" +"X-Generator: Poedit 2.4.2\n" "Last-Translator: \n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "Language: es_US\n" #: ../Doc/howto/logging.rst:3 msgid "Logging HOWTO" -msgstr "HOWTO Hacer Registros (*Logging*)" +msgstr "" #: ../Doc/howto/logging.rst:0 msgid "Author" -msgstr "Autor" +msgstr "" #: ../Doc/howto/logging.rst:5 msgid "Vinay Sajip " -msgstr "Vinay Sajip " +msgstr "" #: ../Doc/howto/logging.rst:12 msgid "Basic Logging Tutorial" -msgstr "Tutorial Básico de *Logging*" +msgstr "" #: ../Doc/howto/logging.rst:14 msgid "" @@ -45,18 +45,10 @@ msgid "" "which the developer ascribes to the event; the importance can also be called " "the *level* or *severity*." msgstr "" -"*Logging* es un medio de rastrear los eventos que ocurren cuando se ejecuta " -"algún software. El desarrollador del software agrega llamadas de registro a " -"su código para indicar que ciertos eventos han ocurrido. Un evento se " -"describe mediante un mensaje descriptivo que puede contener opcionalmente " -"datos variables (es decir, datos que son potencialmente diferentes para cada " -"ocurrencia del evento). Los eventos también tienen una importancia que el " -"desarrollador atribuye al evento; la importancia también puede llamarse el " -"*nivel* o la *severidad*." #: ../Doc/howto/logging.rst:23 msgid "When to use logging" -msgstr "Cuándo usar *logging*" +msgstr "" #: ../Doc/howto/logging.rst:25 msgid "" @@ -65,94 +57,71 @@ msgid "" "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 "" -"*Logging* proporciona un conjunto de funciones convenientes para un uso " -"sencillo de registro. Estas son :func:`debug`, :func:`info`, :func:" -"`warning`, :func:`error` y :func:`critical`. Para determinar cuándo usar el " -"registro, vea la tabla de abajo, que indica, para cada una de las tareas " -"comunes, la mejor herramienta a usar para ello." #: ../Doc/howto/logging.rst:31 msgid "Task you want to perform" -msgstr "La tarea que quieres realizar" +msgstr "" #: ../Doc/howto/logging.rst:31 msgid "The best tool for the task" -msgstr "La mejor herramienta para la tarea" +msgstr "" #: ../Doc/howto/logging.rst:33 msgid "" "Display console output for ordinary usage of a command line script or program" msgstr "" -"Mostrar salidas de la consola para el uso ordinario de un programa o guion " -"(script) de línea de comandos" #: ../Doc/howto/logging.rst:33 msgid ":func:`print`" -msgstr ":func:`print`" +msgstr "" #: ../Doc/howto/logging.rst:37 msgid "" "Report events that occur during normal operation of a program (e.g. for " "status monitoring or fault investigation)" msgstr "" -"Reportar eventos que ocurren durante el funcionamiento normal de un programa " -"(por ejemplo, para la supervisión del estado o la investigación de fallos)" #: ../Doc/howto/logging.rst:37 msgid "" ":func:`logging.info` (or :func:`logging.debug` for very detailed output for " "diagnostic purposes)" msgstr "" -":func:`logging.info` (o :func:`logging.debug` para salidas de registro muy " -"detalladas con fines de diagnóstico)" #: ../Doc/howto/logging.rst:42 msgid "Issue a warning regarding a particular runtime event" msgstr "" -"Emitir una advertencia con respecto a un evento de tiempo de ejecución en " -"particular" #: ../Doc/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` en el código de la biblioteca si el problema es " -"evitable y la aplicación cliente debe ser modificada para eliminar la " -"advertencia" #: ../Doc/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 no hay nada que la aplicación cliente pueda hacer " -"sobre la situación, pero el evento debe ser anotado" #: ../Doc/howto/logging.rst:52 msgid "Report an error regarding a particular runtime event" msgstr "" -"Reportar un error con respecto a un evento particular al tiempo de ejecución" #: ../Doc/howto/logging.rst:52 msgid "Raise an exception" -msgstr "Lanza una excepción" +msgstr "" #: ../Doc/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 "" -"Reporta la supresión de un error sin invocar una excepción (por ejemplo, el " -"manejador de errores en un proceso de servidor de larga duración)" #: ../Doc/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` o :func:`logging.critical` " -"según sea apropiado para el error específico y el dominio de la aplicación" #: ../Doc/howto/logging.rst:62 msgid "" @@ -160,40 +129,35 @@ msgid "" "they are used to track. The standard levels and their applicability are " "described below (in increasing order of severity):" msgstr "" -"Las funciones de registro se denominan según el nivel o la gravedad de los " -"eventos que se utilizan para rastrear. A continuación se describen los " -"niveles estándar y su aplicabilidad (en orden creciente de gravedad):" #: ../Doc/howto/logging.rst:69 ../Doc/howto/logging.rst:846 msgid "Level" -msgstr "Nivel" +msgstr "" #: ../Doc/howto/logging.rst:69 msgid "When it's used" -msgstr "Cuando es usado" +msgstr "" #: ../Doc/howto/logging.rst:71 ../Doc/howto/logging.rst:856 msgid "``DEBUG``" -msgstr "``DEBUG``" +msgstr "" #: ../Doc/howto/logging.rst:71 msgid "" "Detailed information, typically of interest only when diagnosing problems." msgstr "" -"Información detallada, típicamente de interés sólo durante el diagnóstico de " -"problemas." #: ../Doc/howto/logging.rst:74 ../Doc/howto/logging.rst:854 msgid "``INFO``" -msgstr "``INFO``" +msgstr "" #: ../Doc/howto/logging.rst:74 msgid "Confirmation that things are working as expected." -msgstr "Confirmación de que las cosas están funcionando como se esperaba." +msgstr "" #: ../Doc/howto/logging.rst:77 ../Doc/howto/logging.rst:852 msgid "``WARNING``" -msgstr "``WARNING``" +msgstr "" #: ../Doc/howto/logging.rst:77 msgid "" @@ -201,33 +165,26 @@ msgid "" "problem in the near future (e.g. 'disk space low'). The software is still " "working as expected." msgstr "" -"Un indicio de que algo inesperado sucedió, o indicativo de algún problema en " -"el futuro cercano (por ejemplo, \"espacio de disco bajo\"). El software " -"sigue funcionando como se esperaba." #: ../Doc/howto/logging.rst:82 ../Doc/howto/logging.rst:850 msgid "``ERROR``" -msgstr "``ERROR``" +msgstr "" #: ../Doc/howto/logging.rst:82 msgid "" "Due to a more serious problem, the software has not been able to perform " "some function." msgstr "" -"Debido a un problema más grave, el software no ha sido capaz de realizar " -"alguna función." #: ../Doc/howto/logging.rst:85 ../Doc/howto/logging.rst:848 msgid "``CRITICAL``" -msgstr "``CRITICAL``" +msgstr "" #: ../Doc/howto/logging.rst:85 msgid "" "A serious error, indicating that the program itself may be unable to " "continue running." msgstr "" -"Un grave error, que indica que el programa en sí mismo puede ser incapaz de " -"seguir funcionando." #: ../Doc/howto/logging.rst:89 msgid "" @@ -235,9 +192,6 @@ msgid "" "and above will be tracked, unless the logging package is configured to do " "otherwise." msgstr "" -"El nivel por defecto es ``WARNING``, lo que significa que sólo los eventos " -"de este nivel y superiores serán rastreados, a menos que el paquete de " -"registro esté configurado para hacer lo contrario." #: ../Doc/howto/logging.rst:93 msgid "" @@ -245,21 +199,18 @@ msgid "" "of handling tracked events is to print them to the console. Another common " "way is to write them to a disk file." msgstr "" -"Los eventos que se rastrean pueden ser manejados en diferentes maneras. La " -"forma más simple de manejar los eventos rastreados es imprimirlos en la " -"consola o terminal. Otra forma común es escribirlos en un archivo de disco." #: ../Doc/howto/logging.rst:101 msgid "A simple example" -msgstr "Un simple ejemplo" +msgstr "" #: ../Doc/howto/logging.rst:103 msgid "A very simple example is::" -msgstr "Un ejemplo muy simple es::" +msgstr "" #: ../Doc/howto/logging.rst:109 msgid "If you type these lines into a script and run it, you'll see:" -msgstr "Si escribes estas líneas en un script y lo ejecutas, verás:" +msgstr "" #: ../Doc/howto/logging.rst:115 msgid "" @@ -270,17 +221,10 @@ msgid "" "explained later. The actual output can be formatted quite flexibly if you " "need that; formatting options will also be explained later." msgstr "" -"impreso en la consola. El mensaje ``INFO`` no aparece porque el nivel por " -"defecto es ``WARNING``. El mensaje impreso incluye la indicación del nivel y " -"la descripción del evento proporcionado en la llamada de registro, es decir, " -"\"¡Cuidado!\". No te preocupes por la parte de la ‘root’ por ahora: se " -"explicará más adelante. La salida real puede ser formateada con bastante " -"flexibilidad si lo necesita; las opciones de formato también se explicarán " -"más adelante." #: ../Doc/howto/logging.rst:124 msgid "Logging to a file" -msgstr "Logging a un archivo" +msgstr "" #: ../Doc/howto/logging.rst:126 msgid "" @@ -289,18 +233,12 @@ msgid "" "Python interpreter, and don't just continue from the session described " "above::" msgstr "" -"Una situación muy común es la de registrar archivos de log, así que veamos " -"eso a continuación. Asegúrese de intentar lo siguiente en un intérprete de " -"Python recién iniciado, y no sólo continúe de la sesión descrita " -"anteriormente::" #: ../Doc/howto/logging.rst:136 msgid "" "And now if we open the file and look at what we have, we should find the log " "messages:" msgstr "" -"Y ahora si abrimos el archivo y miramos lo que tenemos, deberíamos encontrar " -"los mensajes de registro:" #: ../Doc/howto/logging.rst:145 msgid "" @@ -308,24 +246,17 @@ msgid "" "threshold for tracking. In this case, because we set the threshold to " "``DEBUG``, all of the messages were printed." msgstr "" -"Este ejemplo también muestra cómo se puede establecer el nivel de registro " -"que actúa como umbral para el rastreo. En este caso, como establecimos el " -"umbral en ``DEBUG``, todos los mensajes fueron impresos." #: ../Doc/howto/logging.rst:149 msgid "" "If you want to set the logging level from a command-line option such as:" msgstr "" -"Si quieres establecer el nivel de registro desde una opción de línea de " -"comandos como:" #: ../Doc/howto/logging.rst:155 msgid "" "and you have the value of the parameter passed for ``--log`` in some " "variable *loglevel*, you can use::" msgstr "" -"y tienes el valor del parámetro pasado por ``--log`` en alguna variable " -"*loglevel*, puedes usar::" #: ../Doc/howto/logging.rst:160 msgid "" @@ -333,9 +264,6 @@ msgid "" "argument. You may want to error check any user input value, perhaps as in " "the following example::" msgstr "" -"para obtener el valor que pasarás a :func:`basicConfig` mediante el " -"argumento *level*. Puede que quieras comprobar un error por cualquier valor " -"de entrada del usuario, quizás como en el siguiente ejemplo::" #: ../Doc/howto/logging.rst:172 msgid "" @@ -344,10 +272,6 @@ msgid "" "configuration facility, only the first call will actually do anything: " "subsequent calls are effectively no-ops." msgstr "" -"La llamada a :func:`basicConfig` debería venir *antes* de cualquier llamada " -"a :func:`debug`, :func:`info` etc. Como se pretende hacer una simple " -"facilidad de configuración única, sólo la primera llamada hará realmente " -"algo: las llamadas subsiguientes son efectivamente no-ops." #: ../Doc/howto/logging.rst:177 msgid "" @@ -356,35 +280,26 @@ msgid "" "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 ejecutas el script anterior varias veces, los mensajes de las ejecuciones " -"sucesivas se añaden al archivo *example.log*. Si quieres que cada ejecución " -"se inicie de nuevo, sin recordar los mensajes de ejecuciones anteriores, " -"puedes especificar el argumento *filemode*, cambiando la llamada en el " -"ejemplo anterior a::" #: ../Doc/howto/logging.rst:184 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 impresión será la misma que antes, pero el archivo de registro ya no se " -"adjunta, por lo que los mensajes de las ejecuciones anteriores se pierden." #: ../Doc/howto/logging.rst:189 msgid "Logging from multiple modules" -msgstr "*Logging* de múltiples módulos" +msgstr "" #: ../Doc/howto/logging.rst:191 msgid "" "If your program consists of multiple modules, here's an example of how you " "could organize logging in it::" msgstr "" -"Si su programa consiste de múltiples módulos, aquí hay un ejemplo de cómo " -"podría organizar el inicio de sesión en él::" #: ../Doc/howto/logging.rst:215 msgid "If you run *myapp.py*, you should see this in *myapp.log*:" -msgstr "Si ejecutas *myapp.py*, deberías ver esto en *myapp.log*:" +msgstr "" #: ../Doc/howto/logging.rst:223 msgid "" @@ -396,30 +311,20 @@ msgid "" "to refer to the documentation beyond the tutorial level -- see :ref:`logging-" "advanced-tutorial`." msgstr "" -"que es lo que esperabas ver. Puedes generalizar esto a múltiples módulos, " -"usando el modelo en *mylib.py*. Ten en cuenta que para este simple patrón de " -"uso, no sabrás, mirando en el archivo de registro, *donde* en tu aplicación " -"vinieron tus mensajes, aparte de mirar la descripción del evento. Si quieres " -"rastrear la ubicación de tus mensajes, tendrás que consultar la " -"documentación más allá del nivel del tutorial -- ver :ref:`logging-advanced-" -"tutorial`." #: ../Doc/howto/logging.rst:233 msgid "Logging variable data" -msgstr "Registrar datos de variables" +msgstr "" #: ../Doc/howto/logging.rst:235 msgid "" "To log variable data, use a format string for the event description message " "and append the variable data as arguments. For example::" msgstr "" -"Para registrar los datos de variables, utilice una cadena de formato para el " -"mensaje de descripción del evento y añada los datos variables como " -"argumentos. Por ejemplo::" #: ../Doc/howto/logging.rst:241 msgid "will display:" -msgstr "se mostrará:" +msgstr "" #: ../Doc/howto/logging.rst:247 msgid "" @@ -430,29 +335,20 @@ msgid "" "options *are* supported, but exploring them is outside the scope of this " "tutorial: see :ref:`formatting-styles` for more information." msgstr "" -"Como puedes ver, la fusión de datos de variables en el mensaje de " -"descripción de eventos utiliza el viejo estilo % de formato de cadena de " -"caracteres. Esto es para compatibilidad retrospectiva : el paquete de " -"registro precede las nuevas opciones de formato como :meth:`str.format` y :" -"class:`string.Template`. Estas nuevas opciones de formato *son* compatibles, " -"pero explorarlas está fuera del alcance de este tutorial: ver :ref:" -"`formatting-styles` para más información." #: ../Doc/howto/logging.rst:256 msgid "Changing the format of displayed messages" -msgstr "Cambiar el formato de los mensajes mostrados" +msgstr "" #: ../Doc/howto/logging.rst:258 msgid "" "To change the format which is used to display messages, you need to specify " "the format you want to use::" msgstr "" -"Para cambiar el formato que se utiliza para visualizar los mensajes, es " -"necesario especificar el formato que se desea utilizar::" #: ../Doc/howto/logging.rst:267 msgid "which would print:" -msgstr "que se imprimirá:" +msgstr "" #: ../Doc/howto/logging.rst:275 msgid "" @@ -463,28 +359,20 @@ msgid "" "including variable data) and perhaps to display when the event occurred. " "This is described in the next section." msgstr "" -"Noten que la ‘root’ que aparecía en los ejemplos anteriores ha desaparecido. " -"Para un conjunto completo de cosas que pueden aparecer en formato de " -"cadenas, puede consultar la documentación de :ref:`logrecord-attributes`, " -"pero para un uso sencillo, sólo necesita el *levelname* (gravedad), " -"*message* (descripción del evento, incluyendo los datos variables) y tal vez " -"mostrar cuándo ocurrió el evento. Esto se describe en la siguiente sección." #: ../Doc/howto/logging.rst:284 msgid "Displaying the date/time in messages" -msgstr "Visualización de la fecha/hora en los mensajes" +msgstr "" #: ../Doc/howto/logging.rst:286 msgid "" "To display the date and time of an event, you would place '%(asctime)s' in " "your format string::" msgstr "" -"Para mostrar la fecha y la hora de un evento, usted colocaría '%(asctime)s' " -"en su cadena de formato::" #: ../Doc/howto/logging.rst:293 msgid "which should print something like this:" -msgstr "que debería imprimir algo como esto:" +msgstr "" #: ../Doc/howto/logging.rst:299 msgid "" @@ -492,26 +380,20 @@ msgid "" "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 "" -"El formato por defecto para la visualización de la fecha/hora (mostrado " -"arriba) es como ISO8601 o :rfc:`3339`. Si necesita más control sobre el " -"formato de la fecha/hora, proporcione un argumento *datefmt* a " -"``basicConfig``, como en este ejemplo::" #: ../Doc/howto/logging.rst:307 msgid "which would display something like this:" -msgstr "que mostraría algo como esto:" +msgstr "" #: ../Doc/howto/logging.rst:313 msgid "" "The format of the *datefmt* argument is the same as supported by :func:`time." "strftime`." msgstr "" -"El formato del argumento *datefmt* es el mismo que el soportado por :func:" -"`time.strftime`." #: ../Doc/howto/logging.rst:318 msgid "Next Steps" -msgstr "Próximos pasos" +msgstr "" #: ../Doc/howto/logging.rst:320 msgid "" @@ -521,11 +403,6 @@ msgid "" "time in reading the following sections. If you're ready for that, grab some " "of your favourite beverage and carry on." msgstr "" -"Eso concluye el tutorial básico. Debería ser suficiente para ponerte en " -"marcha con el registro. Hay mucho más que el paquete de registro ofrece, " -"pero para obtener lo mejor de él, tendrá que invertir un poco más de su " -"tiempo en la lectura de las siguientes secciones. Si estás listo para eso, " -"toma un poco de tu bebida favorita y sigue adelante." #: ../Doc/howto/logging.rst:326 msgid "" @@ -535,11 +412,6 @@ msgid "" "group (available at https://groups.google.com/forum/#!forum/comp.lang." "python) and you should receive help before too long." msgstr "" -"Si sus necesidades de registro son sencillas, utilice los ejemplos previos " -"para incorporar el registro en sus propios scripts, y si tiene problemas o " -"no entiende algo, por favor publique una pregunta en el grupo Usenet de comp." -"lang.python (disponible en https://groups.google.com/forum/#!forum/comp.lang." -"python) y debería recibir ayuda antes de que transcurra demasiado tiempo." #: ../Doc/howto/logging.rst:332 msgid "" @@ -547,57 +419,42 @@ msgid "" "slightly more advanced/in-depth tutorial than the basic one above. After " "that, you can take a look at the :ref:`logging-cookbook`." msgstr "" -"¿Todavía esta aquí? Puedes seguir leyendo las siguientes secciones, que " -"proporcionan un tutorial un poco más avanzado y profundo que el básico de " -"arriba. Después de eso, puedes echar un vistazo al :ref:`logging-cookbook`." #: ../Doc/howto/logging.rst:340 msgid "Advanced Logging Tutorial" -msgstr "Tutorial de registro avanzado" +msgstr "" #: ../Doc/howto/logging.rst:342 msgid "" "The logging library takes a modular approach and offers several categories " "of components: loggers, handlers, filters, and formatters." msgstr "" -"La biblioteca de logging adopta un enfoque modular y ofrece varias " -"categorías de componentes: registradores, gestores, filtros y formateadores." #: ../Doc/howto/logging.rst:345 msgid "Loggers expose the interface that application code directly uses." msgstr "" -"Los registradores exponen la interfaz que el código de la aplicación utiliza " -"directamente." #: ../Doc/howto/logging.rst:346 msgid "" "Handlers send the log records (created by loggers) to the appropriate " "destination." msgstr "" -"Los gestores envían los registros de log (creados por los registradores) al " -"destino apropiado." #: ../Doc/howto/logging.rst:348 msgid "" "Filters provide a finer grained facility for determining which log records " "to output." msgstr "" -"Los filtros proporcionan una instalación de grano más fino para determinar " -"qué registros de log se deben producir." #: ../Doc/howto/logging.rst:350 msgid "Formatters specify the layout of log records in the final output." msgstr "" -"Los formatos especifican la disposición de los archivos de log en el " -"resultado final." #: ../Doc/howto/logging.rst:352 msgid "" "Log event information is passed between loggers, handlers, filters and " "formatters in a :class:`LogRecord` instance." msgstr "" -"La información de los eventos de registro se pasa entre los registradores, " -"gestores, filtros y formateadores en una instancia :class:`LogRecord`." #: ../Doc/howto/logging.rst:355 msgid "" @@ -609,32 +466,18 @@ msgid "" "want, and indicate the area of an application in which a logged message " "originates." msgstr "" -"El registro se realiza llamando a métodos en instancias de la clase :class:" -"`Logger` (de aquí en adelante llamada :dfn:`loggers`). Cada instancia tiene " -"un nombre, y se organizan conceptualmente en una jerarquía de espacios de " -"nombres utilizando puntos (puntos) como separadores. Por ejemplo, un " -"registrador llamado \"scan\" es el padre de los registradores \"scan.text\", " -"\"scan.html\" y \"scan.pdf\". Los nombres de los registradores pueden ser " -"cualquier cosa que se desee, e indican el área de una aplicación en la que " -"se origina un mensaje registrado." #: ../Doc/howto/logging.rst:362 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 "" -"Una buena convención que se puede utilizar para nombrar a los registradores " -"es utilizar un registrador a nivel de módulo, en cada módulo que utilice el " -"registro, llamado de la siguiente manera::" #: ../Doc/howto/logging.rst:367 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 "" -"Esto significa que los nombres de los registradores rastrean la jerarquía de " -"paquetes/módulos, y es intuitivamente obvio donde se registran los eventos " -"sólo a partir del nombre del registrador." #: ../Doc/howto/logging.rst:370 msgid "" @@ -644,11 +487,6 @@ msgid "" "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 raíz de la jerarquía de los registradores se llama root *logger*. Ese es " -"el registrador usado por las funciones :func:`debug`, :func:`info`, :func:" -"`warning`, :func:`error` y :func:`critícal`, que sólo llaman al mismo método " -"del registrador raíz. Las funciones y los métodos tienen las mismas firmas. " -"El nombre del root *logger* se imprime como ‘root’ en la salida registrada." #: ../Doc/howto/logging.rst:376 msgid "" @@ -660,14 +498,6 @@ msgid "" "destination class if you have special requirements not met by any of the " "built-in handler classes." msgstr "" -"Por supuesto, es posible registrar mensajes a diferentes destinos. El " -"paquete incluye soporte para escribir mensajes de registro en archivos, " -"ubicaciones HTTP GET/POST, correo electrónico a través de SMTP, sockets " -"genéricos, colas o mecanismos de registro específicos del sistema operativo " -"como syslog o el registro de eventos de Windows NT. Los destinos son " -"servidos por clases :dfn:`handler`. Puedes crear tu propia clase de destino " -"de registro si tienes requisitos especiales que no se cumplen con ninguna de " -"las clases de gestor incorporadas." #: ../Doc/howto/logging.rst:383 msgid "" @@ -680,20 +510,10 @@ msgid "" "displayed message before delegating to the root logger to do the actual " "message output." msgstr "" -"Por defecto, no se establece ningún destino para los mensajes de registro. " -"Puede especificar un destino (como consola o archivo) usando :func:" -"`basicConfig` como en los ejemplos del tutorial. Si llama a las funciones :" -"func:`debug`, :func:`info`, :func:`warning`, :func:`error` y :func:" -"`critical`, ellas comprobarán si no hay ningún destino establecido; y si no " -"hay ninguno establecido, establecerán un destino de la consola (``sys." -"stderr``) y un formato por defecto para el mensaje mostrado antes de delegar " -"en el registrador root para hacer la salida real del mensaje." #: ../Doc/howto/logging.rst:391 msgid "The default format set by :func:`basicConfig` for messages is:" msgstr "" -"El formato por defecto establecido por :func:`basicConfig` para los mensajes " -"es:" #: ../Doc/howto/logging.rst:397 msgid "" @@ -701,25 +521,20 @@ msgid "" "the *format* keyword argument. For all options regarding how a format string " "is constructed, see :ref:`formatter-objects`." msgstr "" -"Puedes cambiar esto pasando una cadena de formato a :func:`basicConfig` con " -"el argumento de la palabra clave *format*. Para todas las opciones relativas " -"a cómo se construye una cadena de formato, ver :ref:`formatter-objects`." #: ../Doc/howto/logging.rst:402 msgid "Logging Flow" -msgstr "Flujo de Registro" +msgstr "" #: ../Doc/howto/logging.rst:404 msgid "" "The flow of log event information in loggers and handlers is illustrated in " "the following diagram." msgstr "" -"En el siguiente diagrama se ilustra el flujo de información de los eventos " -"de registro en los registradores y gestores." #: ../Doc/howto/logging.rst:410 msgid "Loggers" -msgstr "Registradores" +msgstr "" #: ../Doc/howto/logging.rst:412 msgid "" @@ -730,25 +545,16 @@ msgid "" "Third, logger objects pass along relevant log messages to all interested log " "handlers." msgstr "" -"Los objetos de :class:`Logger` tienen un trabajo triple. Primero, exponen " -"varios métodos al código de la aplicación para que las aplicaciones puedan " -"registrar mensajes en tiempo de ejecución. Segundo, los objetos *logger* " -"determinan sobre qué mensajes de registro actuar en base de la severidad (la " -"facilidad de filtrado por defecto) o los objetos de filtro. Tercero, los " -"objetos registradores pasan los mensajes de registro relevantes a todos los " -"manejadores de registro interesados." #: ../Doc/howto/logging.rst:418 msgid "" "The most widely used methods on logger objects fall into two categories: " "configuration and message sending." msgstr "" -"Los métodos más utilizados en los objetos de registro se dividen en dos " -"categorías: configuración y envío de mensajes." #: ../Doc/howto/logging.rst:421 msgid "These are the most common configuration methods:" -msgstr "Estos son los métodos de configuración más comunes:" +msgstr "" #: ../Doc/howto/logging.rst:423 msgid "" @@ -758,11 +564,6 @@ msgid "" "INFO, the logger will handle only INFO, WARNING, ERROR, and CRITICAL " "messages and will ignore DEBUG messages." msgstr "" -":meth:`Logger.setLevel` especifica el mensaje de registro de menor gravedad " -"que un registrador manejará, donde debug es el nivel de gravedad incorporado " -"más bajo y *critical* es el de mayor gravedad incorporado. Por ejemplo, si " -"el nivel de severidad es INFO, el registrador sólo manejará los mensajes " -"INFO, WARNING, ERROR y CRITICAL e ignorará los mensajes DEBUG." #: ../Doc/howto/logging.rst:429 msgid "" @@ -770,9 +571,6 @@ msgid "" "handler objects from the logger object. Handlers are covered in more detail " "in :ref:`handler-basic`." msgstr "" -":meth:`Logger.addHandler` y :meth:`Logger.removeHandler` agregan y quitan " -"los objetos *handler* del objeto *logger*. Los manejadores (*handlers*) se " -"tratan con más detalle en :ref:`handler-basic`." #: ../Doc/howto/logging.rst:433 msgid "" @@ -780,24 +578,17 @@ msgid "" "filter objects from the logger object. Filters are covered in more detail " "in :ref:`filter`." msgstr "" -":meth:`Logger.addFilter` y :meth:`Logger.removeFilter` agregan y quitan los " -"objetos de filtro del objeto logger. Los filtros se tratan con más detalle " -"en :ref:`filter`." #: ../Doc/howto/logging.rst:437 msgid "" "You don't need to always call these methods on every logger you create. See " "the last two paragraphs in this section." msgstr "" -"No es necesario que siempre llames a estos métodos en cada registrador que " -"crees. Vea los dos últimos párrafos de esta sección." #: ../Doc/howto/logging.rst:440 msgid "" "With the logger object configured, the following methods create log messages:" msgstr "" -"Con el objeto *logger* configurado, los siguientes métodos crean mensajes de " -"log:" #: ../Doc/howto/logging.rst:442 msgid "" @@ -811,16 +602,6 @@ msgid "" "about a keyword of ``exc_info`` and use it to determine whether to log " "exception information." msgstr "" -":meth:`Logger.debug`, :meth:`Logger.info`, :meth:`Logger.warning`, :meth:" -"`Logger.error`, y :meth:`Logger.critical` todos crean registros de registro " -"con un mensaje y un nivel que corresponde a sus respectivos nombres de " -"método. El mensaje es en realidad una cadena de formato, que puede contener " -"la sintaxis estándar de sustitución de cadenas de ``%s``, ``%d``, ``%f``, y " -"así sucesivamente. El resto de sus argumentos es una lista de objetos que " -"se corresponden con los campos de sustitución del mensaje. Con respecto a " -"``**kwargs``, los métodos de registro sólo se preocupan por una palabra " -"clave de ``exc_info`` y la usan para determinar si registran información de " -"excepción." #: ../Doc/howto/logging.rst:452 msgid "" @@ -828,10 +609,6 @@ msgid "" "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` crea un mensaje de registro similar a :meth:`Logger." -"error`. La diferencia es que :meth:`Logger.exception` vuelca un rastro de " -"pila junto con él. Llama a este método sólo desde un manejador de " -"excepciones." #: ../Doc/howto/logging.rst:456 msgid "" @@ -840,10 +617,6 @@ msgid "" "convenience methods listed above, but this is how to log at custom log " "levels." msgstr "" -":meth:`Logger.log` toma un nivel de log como argumento explícito. Esto es " -"un poco más verboso para el registro de mensajes que usar los métodos de " -"conveniencia de nivel de registro listados arriba, pero así es como se " -"registra en niveles de registro personalizados." #: ../Doc/howto/logging.rst:460 msgid "" @@ -856,14 +629,6 @@ msgid "" "loggers with names of ``foo.bar``, ``foo.bar.baz``, and ``foo.bam`` are all " "descendants of ``foo``." msgstr "" -":func:`getLogger` retorna una referencia a una instancia de *logger* con el " -"nombre especificado si se proporciona, o ``root`` si no. Los nombres son " -"estructuras jerárquicas separadas por períodos. Múltiples llamadas a :func:" -"`getLogger` con el mismo nombre retornarán una referencia al mismo objeto " -"*logger*. Los *loggers* que están más abajo en la lista jerárquica son " -"hijos de los *loggers* que están más arriba en la lista. Por ejemplo, dado " -"un *logger* con un nombre de ``foo``, los *loggers* con nombres de ``foo." -"bar``, ``foo.bar.baz``, y ``foo.bam`` son todos descendientes de ``foo``." #: ../Doc/howto/logging.rst:468 msgid "" @@ -876,15 +641,6 @@ msgid "" "the logger is used to determine whether the event is passed to the logger's " "handlers." msgstr "" -"Los registradores tienen un concepto de *nivel efectivo*. Si un nivel no se " -"establece explícitamente en un registrador, el nivel de su clase padre se " -"utiliza en su lugar como su nivel efectivo. Si el padre no tiene un nivel " -"explícito establecido, *su* padre es examinado, y así sucesivamente - se " -"buscan todos los ancestros hasta que se encuentra un nivel explícitamente " -"establecido. El registrador raíz siempre tiene un conjunto de niveles " -"explícito (``Advertencia`` por defecto). Cuando se decide si se procesa un " -"evento, el nivel efectivo del registrador se utiliza para determinar si el " -"evento se pasa a los manejadores del registrador." #: ../Doc/howto/logging.rst:476 msgid "" @@ -895,17 +651,10 @@ msgid "" "needed. (You can, however, turn off propagation by setting the *propagate* " "attribute of a logger to ``False``.)" msgstr "" -"Los *loggers* inferiores propagan mensajes hasta los gestores asociados con " -"sus *loggers* ancestros. Debido a esto, no es necesario definir y configurar " -"los manejadores para todos los registradores que utiliza una aplicación. " -"Basta con configurar los manejadores para un registrador de nivel superior y " -"crear registradores hijos según sea necesario. (Sin embargo, puedes " -"desactivar la propagación estableciendo el atributo *propagate* de un " -"*logger* en ``False``.)" #: ../Doc/howto/logging.rst:487 msgid "Handlers" -msgstr "Gestores" +msgstr "" #: ../Doc/howto/logging.rst:489 msgid "" @@ -919,17 +668,6 @@ msgid "" "individual handlers where each handler is responsible for sending messages " "of a specific severity to a specific location." msgstr "" -"Los objetos :class:`~logging.Handler` son responsables de enviar los " -"mensajes de registro apropiados (basados en la severidad de los mensajes de " -"registro) al destino especificado por el handler. :class:`Logger` los " -"objetos pueden añadir cero o más objetos *handler* a sí mismos con un " -"método :meth:`~Logger.addHandler`. Como escenario de ejemplo, una " -"aplicación puede querer enviar todos los mensajes de registro a un archivo " -"de registro, todos los mensajes de registro de error o superiores a stdout, " -"y todos los mensajes de crítico a una dirección de correo electrónico. Este " -"escenario requiere tres manejadores individuales donde cada manejador es " -"responsable de enviar mensajes de una severidad específica a una ubicación " -"específica." #: ../Doc/howto/logging.rst:499 msgid "" @@ -937,9 +675,6 @@ msgid "" "handlers`); the tutorials use mainly :class:`StreamHandler` and :class:" "`FileHandler` in its examples." msgstr "" -"La biblioteca estándar incluye bastantes tipos de *handler* (ver :ref:" -"`useful-handlers`); los tutoriales usan principalmente :class:" -"`StreamHandler` y :class:`FileHandler` en sus ejemplos." #: ../Doc/howto/logging.rst:503 msgid "" @@ -948,11 +683,6 @@ msgid "" "application developers who are using the built-in handler objects (that is, " "not creating custom handlers) are the following configuration methods:" msgstr "" -"Hay muy pocos métodos en un manejador para que los desarrolladores de " -"aplicaciones se preocupen. Los únicos métodos de manejador que parecen " -"relevantes para los desarrolladores de aplicaciones que utilizan los objetos " -"de manejador incorporados (es decir, que no crean manejadores " -"personalizados) son los siguientes métodos de configuración:" #: ../Doc/howto/logging.rst:508 msgid "" @@ -963,28 +693,18 @@ msgid "" "level set in each handler determines which messages that handler will send " "on." msgstr "" -"El método :meth:`~Handler.setLevel`, al igual que en los objetos de " -"*logger*, especifica la menor gravedad que será enviada al destino " -"apropiado. ¿Por qué hay dos métodos :func:`setLevel`? El nivel establecido " -"en el registrador determina qué gravedad de los mensajes pasará a sus " -"manejadores. El nivel establecido en cada manejador determina qué mensajes " -"enviará ese manejador." #: ../Doc/howto/logging.rst:514 msgid "" ":meth:`~Handler.setFormatter` selects a Formatter object for this handler to " "use." msgstr "" -":meth:`~Handler.setFormatter` selecciona un objeto *Formatter* para que este " -"*handler* lo use." #: ../Doc/howto/logging.rst:517 msgid "" ":meth:`~Handler.addFilter` and :meth:`~Handler.removeFilter` respectively " "configure and deconfigure filter objects on handlers." msgstr "" -":meth:`~Handler.addFilter` y :meth:`~Handler.removeFilter` respectivamente " -"configuran y desconfiguran los objetos del filtro en los handlers." #: ../Doc/howto/logging.rst:520 msgid "" @@ -993,14 +713,10 @@ msgid "" "the interface that all handlers should have and establishes some default " "behavior that child classes can use (or override)." msgstr "" -"El código de la aplicación no debe instanciar directamente y usar instancias " -"de :class:`Handler`. En su lugar, la clase :class:`Handler` es una clase " -"base que define la interfaz que todos los *handlers* deben tener y establece " -"algún comportamiento por defecto que las clases hijas pueden usar (o anular)." #: ../Doc/howto/logging.rst:527 msgid "Formatters" -msgstr "Formateadores" +msgstr "" #: ../Doc/howto/logging.rst:529 msgid "" @@ -1011,30 +727,18 @@ msgid "" "takes three optional arguments -- a message format string, a date format " "string and a style indicator." msgstr "" -"Los objetos de formato configuran el orden final, la estructura y el " -"contenido del mensaje de registro. A diferencia de la clase base :class:" -"`logging.Handler`, el código de la aplicación puede instanciar clases de " -"formateo, aunque probablemente podría subclasificar el formateo si su " -"aplicación necesita un comportamiento especial. El constructor toma tres " -"argumentos opcionales -- una cadena de formato de mensaje, una cadena de " -"formato de fecha y un indicador de estilo." #: ../Doc/howto/logging.rst:538 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 "" -"Si no hay una cadena de formato de mensaje, el valor predeterminado es " -"utilizar el mensaje en bruto. Si no hay una cadena de formato de fecha, el " -"formato de fecha por defecto es:" #: ../Doc/howto/logging.rst:545 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 "" -"con los milisegundos clavados al final. El ``style`` es uno de `%`, ‘{‘ o " -"‘$’. Si uno de estos no se especifica, entonces se usará ‘%’." #: ../Doc/howto/logging.rst:548 msgid "" @@ -1045,17 +749,10 @@ msgid "" "arguments), while if the style is '$' then the message format string should " "conform to what is expected by :meth:`string.Template.substitute`." msgstr "" -"Si el ``style`` es '%', la cadena del formato de mensaje utiliza ``" -"%()s`` estilo de sustitución de cadena; las posibles claves " -"están documentadas en :ref:`logrecord-attributes`. Si el estilo es '{', se " -"asume que la cadena del formato del mensaje es compatible con :meth:`str." -"format` (usando argumentos de palabras clave), mientras que si el estilo es " -"'$' entonces la cadena del formato del mensaje debe ajustarse a lo que se " -"espera de :meth:`string.Template.substitute`." #: ../Doc/howto/logging.rst:555 msgid "Added the ``style`` parameter." -msgstr "Añadió el parámetro ``style``." +msgstr "" #: ../Doc/howto/logging.rst:558 msgid "" @@ -1063,9 +760,6 @@ msgid "" "format, the severity of the message, and the contents of the message, in " "that order::" msgstr "" -"La siguiente cadena de formato de mensaje registrará la hora en un formato " -"legible para los humanos, la gravedad del mensaje y el contenido del " -"mensaje, en ese orden::" #: ../Doc/howto/logging.rst:564 msgid "" @@ -1077,46 +771,32 @@ msgid "" "want all logging times to be shown in GMT, set the ``converter`` attribute " "in the Formatter class (to ``time.gmtime`` for GMT display)." msgstr "" -"Los formateadores utilizan una función configurable por el usuario para " -"convertir la hora de creación de un registro en una tupla. Por defecto, se " -"utiliza :func:`time.localtime`; para cambiar esto para una instancia de " -"formateador particular, establezca el atributo ``converter`` de la instancia " -"a una función con la misma firma que :func:`time.localtime` o :func:`time." -"gmtime`. Para cambiarlo para todos los formateadores, por ejemplo si quieres " -"que todas las horas de registro se muestren en GMT, establece el atributo " -"``converter`` en la clase *Formatter* (a ``time.gmtime`` para mostrar GMT)." #: ../Doc/howto/logging.rst:574 msgid "Configuring Logging" -msgstr "Configuración del registro" +msgstr "" #: ../Doc/howto/logging.rst:578 msgid "Programmers can configure logging in three ways:" -msgstr "Los programadores pueden configurar el registro en tres maneras:" +msgstr "" #: ../Doc/howto/logging.rst:580 msgid "" "Creating loggers, handlers, and formatters explicitly using Python code that " "calls the configuration methods listed above." msgstr "" -"Creando registradores, manejadores y formateadores explícitamente usando " -"código Python que llama a los métodos de configuración listados arriba." #: ../Doc/howto/logging.rst:582 msgid "" "Creating a logging config file and reading it using the :func:`fileConfig` " "function." msgstr "" -"Creando un archivo de configuración de registro y leyéndolo usando la " -"función :func:`fileConfig`." #: ../Doc/howto/logging.rst:584 msgid "" "Creating a dictionary of configuration information and passing it to the :" "func:`dictConfig` function." msgstr "" -"Creando un diccionario de información de configuración y pasándolo a la " -"función :func:`dictConfig`." #: ../Doc/howto/logging.rst:587 msgid "" @@ -1124,16 +804,11 @@ msgid "" "config-api`. The following example configures a very simple logger, a " "console handler, and a simple formatter using Python code::" msgstr "" -"Para la documentación de referencia sobre las dos últimas opciones, vea :ref:" -"`logging-config-api`. El siguiente ejemplo configura un *logger* muy " -"simple, un manejador de consola, y un formateador simple usando código " -"Python::" #: ../Doc/howto/logging.rst:617 msgid "" "Running this module from the command line produces the following output:" msgstr "" -"Ejecutar este módulo desde la línea de comandos produce la siguiente salida:" #: ../Doc/howto/logging.rst:628 msgid "" @@ -1141,20 +816,15 @@ msgid "" "identical to those in the example listed above, with the only difference " "being the names of the objects::" msgstr "" -"El siguiente módulo de Python crea un registrador, manejador y formateador " -"casi idéntico a los del ejemplo anterior, con la única diferencia de los " -"nombres de los objetos::" #: ../Doc/howto/logging.rst:647 msgid "Here is the logging.conf file:" -msgstr "Aquí está el archivo logging.conf:" +msgstr "" #: ../Doc/howto/logging.rst:680 msgid "" "The output is nearly identical to that of the non-config-file-based example:" msgstr "" -"La salida es casi idéntica a la del ejemplo basado en un archivo no " -"configurado:" #: ../Doc/howto/logging.rst:691 msgid "" @@ -1162,10 +832,6 @@ msgid "" "Python code approach, mainly separation of configuration and code and the " "ability of noncoders to easily modify the logging properties." msgstr "" -"Se puede ver que el enfoque del archivo de configuración tiene algunas " -"ventajas sobre el enfoque del código Python, principalmente la separación de " -"la configuración y el código y la capacidad de los no codificadores de " -"modificar fácilmente las propiedades de registro." #: ../Doc/howto/logging.rst:695 msgid "" @@ -1177,14 +843,6 @@ msgid "" "configuration. Please refer to the reference documentation for more " "information, and specify ``False`` for this parameter if you wish." msgstr "" -"La función :func:`fileConfig`` toma un parámetro por defecto, " -"``disable_existing_loggers``, que por defecto es ``True`` por razones de " -"compatibilidad retroactiva. Esto puede ser o no lo que usted quiera, ya que " -"causará que cualquier registrador no existente antes de la llamada :func:" -"`fileConfig` sea desactivado a menos que ellos (o un ancestro) sean " -"nombrados explícitamente en la configuración. Por favor, consulte la " -"documentación de referencia para más información, y especifique ``False`` " -"para este parámetro si lo desea." #: ../Doc/howto/logging.rst:703 msgid "" @@ -1194,13 +852,6 @@ msgid "" "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 "" -"El diccionario pasado a :func:`dictConfig` también puede especificar un " -"valor booleano con la tecla ``disable_existing_loggers``, que si no se " -"especifica explícitamente en el diccionario también se interpreta por " -"defecto como ``True``. Esto lleva al comportamiento de deshabilitación de " -"los registradores descrito anteriormente, que puede no ser lo que usted " -"desea - en cuyo caso, proporcione a la clave explícitamente un valor de " -"``False``." #: ../Doc/howto/logging.rst:713 msgid "" @@ -1212,14 +863,6 @@ msgid "" "module ``mymodule``, where ``mypackage`` is available on the Python import " "path)." msgstr "" -"Obsérvese que los nombres de clase a los que se hace referencia en los " -"archivos de configuración deben ser relativos al módulo de registro, o bien " -"valores absolutos que puedan resolverse mediante mecanismos de importación " -"normales. Por lo tanto, puedes usar :class:`~logging.handlers." -"WatchedFileHandler` (relativo al módulo de registro) o ``mypackage.mymodule." -"MyHandler`` (para una clase definida en el paquete ``mypackage`` y el módulo " -"``mymodule``, donde ``mypackage`` está disponible en la ruta de importación " -"de Python)." #: ../Doc/howto/logging.rst:721 msgid "" @@ -1235,40 +878,22 @@ msgid "" "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 "" -"En Python 3.2, se ha introducido un nuevo medio para configurar el registro, " -"utilizando diccionarios para guardar la información de configuración. Esto " -"proporciona un superconjunto de la funcionalidad del enfoque basado en " -"archivos de configuración descrito anteriormente, y es el método de " -"configuración recomendado para nuevas aplicaciones y despliegues. Dado que " -"se utiliza un diccionario de Python para guardar información de " -"configuración, y dado que se puede rellenar ese diccionario utilizando " -"diferentes medios, se dispone de más opciones de configuración. Por ejemplo, " -"puede utilizar un archivo de configuración en formato JSON o, si tiene " -"acceso a la funcionalidad de procesamiento YAML, un archivo en formato YAML, " -"para rellenar el diccionario de configuración. O, por supuesto, puedes " -"construir el diccionario en código Python, recibirlo en forma encurtida " -"sobre un zócalo, o usar cualquier enfoque que tenga sentido para tu " -"aplicación." #: ../Doc/howto/logging.rst:733 msgid "" "Here's an example of the same configuration as above, in YAML format for the " "new dictionary-based approach:" msgstr "" -"Aquí hay un ejemplo de la misma configuración que arriba, en formato YAML " -"para el nuevo enfoque basado en el diccionario:" #: ../Doc/howto/logging.rst:757 msgid "" "For more information about logging using a dictionary, see :ref:`logging-" "config-api`." msgstr "" -"Para más información sobre el registro usando un diccionario, ver :ref:" -"`logging-config-api`." #: ../Doc/howto/logging.rst:761 msgid "What happens if no configuration is provided" -msgstr "¿Qué pasa si no se proporciona ninguna configuración" +msgstr "" #: ../Doc/howto/logging.rst:763 msgid "" @@ -1277,38 +902,26 @@ msgid "" "output the event. The behaviour of the logging package in these " "circumstances is dependent on the Python version." msgstr "" -"Si no se proporciona una configuración de registro, es posible que se " -"produzca una situación en la que sea necesario dar salida a un suceso de " -"registro, pero no se puede encontrar a ningún gestor para dar salida al " -"suceso. El comportamiento del paquete de registro en estas circunstancias " -"depende de la versión de Python." #: ../Doc/howto/logging.rst:768 msgid "For versions of Python prior to 3.2, the behaviour is as follows:" msgstr "" -"Para las versiones de Python anteriores a la 3.2, el comportamiento es el " -"siguiente:" #: ../Doc/howto/logging.rst:770 msgid "" "If *logging.raiseExceptions* is ``False`` (production mode), the event is " "silently dropped." msgstr "" -"Si *logging.raiseExceptions* es ``Falso`` (modo de producción), el evento es " -"abandonado silenciosamente." #: ../Doc/howto/logging.rst:773 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* es ``True`` (modo de desarrollo), se imprime " -"una vez un mensaje '*No handlers could be found for logger X.Y.Z*' ('No se " -"pudo encontrar ningún manejador (*handler*) para el *logger* X.Y.Z')." #: ../Doc/howto/logging.rst:776 msgid "In Python 3.2 and later, the behaviour is as follows:" -msgstr "En Python 3.2 y posteriores, el comportamiento es el siguiente:" +msgstr "" #: ../Doc/howto/logging.rst:778 msgid "" @@ -1321,26 +934,16 @@ msgid "" "handler's level is set to ``WARNING``, so all events at this and greater " "severities will be output." msgstr "" -"El evento es emitido usando un ‘handler de último recurso’, almacenado en " -"``logging.lastResort``. Este manejador interno no está asociado con ningún " -"logger, y actúa como un :class:`~logging.StreamHandler`` que escribe el " -"mensaje de descripción del evento con el valor actual de ``sys.stderr`` " -"(respetando así cualquier redireccionamiento que pueda estar en vigor). No " -"se hace ningún tipo de formateo en el mensaje, sólo se imprime el mensaje de " -"descripción del evento. El nivel del manejador se establece en ``WARNING``, " -"por lo que todos los eventos de esta y mayores severidades serán emitidos." #: ../Doc/howto/logging.rst:787 msgid "" "To obtain the pre-3.2 behaviour, ``logging.lastResort`` can be set to " "``None``." msgstr "" -"Para obtener el comportamiento anterior a la 3.2, ``logging.lastResort`` se " -"puede configurar como ``None``." #: ../Doc/howto/logging.rst:792 msgid "Configuring Logging for a Library" -msgstr "Configurando Logging para una biblioteca" +msgstr "" #: ../Doc/howto/logging.rst:794 msgid "" @@ -1352,14 +955,6 @@ msgid "" "of severity ``WARNING`` and greater will be printed to ``sys.stderr``. This " "is regarded as the best default behaviour." msgstr "" -"Cuando se desarrolla una biblioteca que utiliza el registro, se debe tener " -"cuidado de documentar la forma en que la biblioteca utiliza el registro, por " -"ejemplo, los nombres de los registradores utilizados. También hay que tener " -"en cuenta su configuración de registro. Si la aplicación que lo utiliza no " -"usa el registro, y el código de la biblioteca hace llamadas de registro, " -"entonces (como se describe en la sección anterior) los eventos de gravedad " -"``WARNING`` y mayores se imprimirán en ``sys.stderr``. Esto se considera el " -"mejor comportamiento por defecto." #: ../Doc/howto/logging.rst:802 msgid "" @@ -1372,16 +967,6 @@ msgid "" "suitably configured then logging calls made in library code will send output " "to those handlers, as normal." msgstr "" -"Si por alguna razón usted *no* quiere que estos mensajes se impriman en " -"ausencia de cualquier configuración de registro, puede adjuntar un manejador " -"de no hacer nada al registrador de nivel superior de su biblioteca. Esto " -"evita que el mensaje se imprima, ya que siempre se encontrará un manejador " -"para los eventos de la biblioteca: simplemente no produce ninguna salida. Si " -"el usuario de la biblioteca configura el registro para el uso de la " -"aplicación, presumiblemente esa configuración añadirá algunos manejadores, y " -"si los niveles están configurados adecuadamente, entonces las llamadas de " -"registro realizadas en el código de la biblioteca enviarán una salida a esos " -"manejadores, como es normal." #: ../Doc/howto/logging.rst:811 msgid "" @@ -1393,14 +978,6 @@ msgid "" "library *foo* is done using loggers with names matching 'foo.x', 'foo.x.y', " "etc. then the code::" msgstr "" -"Un manejador de no hacer nada está incluido en el paquete de registro: :" -"class:`~logging.NullHandler` (desde Python 3.1). Una instancia de este " -"manejador podría ser añadida al *logger* de nivel superior del espacio de " -"nombres de registro usado por la biblioteca (*si* quieres evitar que los " -"eventos de registro de tu biblioteca se envíen a ``sys.stderr`` en ausencia " -"de la configuración de registro). Si todo el registro de una biblioteca " -"*foo* se hace usando registradores con nombres que coincidan con 'foo.x', " -"'foo.x.y', etc. entonces el código::" #: ../Doc/howto/logging.rst:822 msgid "" @@ -1408,9 +985,6 @@ msgid "" "libraries, then the logger name specified can be 'orgname.foo' rather than " "just 'foo'." msgstr "" -"debería tener el efecto deseado. Si una organización produce varias " -"bibliotecas, el nombre del registrador especificado puede ser ‘orgname.foo’ " -"en lugar de sólo ‘foo’." #: ../Doc/howto/logging.rst:826 msgid "" @@ -1422,18 +996,10 @@ msgid "" "handlers 'under the hood', you might well interfere with their ability to " "carry out unit tests and deliver logs which suit their requirements." msgstr "" -"Se recomienda encarecidamente que *no añada ningún otro manejador que no " -"sea* :class:`~logging.NullHandler` *a los loggers de su biblioteca*. Esto se " -"debe a que la configuración de los *handlers* es prerrogativa del " -"desarrollador de aplicaciones que utiliza su biblioteca. El desarrollador de " -"la aplicación conoce su público objetivo y qué manejadores son los más " -"apropiados para su aplicación: si añades manejadores ‘bajo el capó’, podrías " -"interferir en su capacidad de realizar pruebas unitarias y entregar " -"registros que se ajusten a sus necesidades." #: ../Doc/howto/logging.rst:837 msgid "Logging Levels" -msgstr "Niveles de registro" +msgstr "" #: ../Doc/howto/logging.rst:839 msgid "" @@ -1443,43 +1009,38 @@ msgid "" "define a level with the same numeric value, it overwrites the predefined " "value; the predefined name is lost." msgstr "" -"Los valores numéricos de los niveles de registro se indican en el siguiente " -"cuadro. Éstos son de interés principalmente si se desea definir los propios " -"niveles y se necesita que tengan valores específicos en relación con los " -"niveles predefinidos. Si se define un nivel con el mismo valor numérico, " -"éste sobrescribe el valor predefinido; el nombre predefinido se pierde." #: ../Doc/howto/logging.rst:846 msgid "Numeric value" -msgstr "Valor numérico" +msgstr "" #: ../Doc/howto/logging.rst:848 msgid "50" -msgstr "50" +msgstr "" #: ../Doc/howto/logging.rst:850 msgid "40" -msgstr "40" +msgstr "" #: ../Doc/howto/logging.rst:852 msgid "30" -msgstr "30" +msgstr "" #: ../Doc/howto/logging.rst:854 msgid "20" -msgstr "20" +msgstr "" #: ../Doc/howto/logging.rst:856 msgid "10" -msgstr "10" +msgstr "" #: ../Doc/howto/logging.rst:858 msgid "``NOTSET``" -msgstr "``NOTSET``" +msgstr "" #: ../Doc/howto/logging.rst:858 msgid "0" -msgstr "0" +msgstr "" #: ../Doc/howto/logging.rst:861 msgid "" @@ -1490,13 +1051,6 @@ msgid "" "the method call's, no logging message is actually generated. This is the " "basic mechanism controlling the verbosity of logging output." msgstr "" -"Los niveles también pueden asociarse con los registradores, siendo " -"establecidos por el desarrollador o mediante la carga de una configuración " -"de registro guardada. Cuando se llama a un método de registro en un " -"registrador, éste compara su propio nivel con el nivel asociado a la llamada " -"del método. Si el nivel del registrador es superior al de la llamada al " -"método, no se genera ningún mensaje de registro. Este es el mecanismo básico " -"que controla la verbosidad de la salida del registro." #: ../Doc/howto/logging.rst:868 msgid "" @@ -1504,10 +1058,6 @@ msgid "" "class. When a logger decides to actually log an event, a :class:`~logging." "LogRecord` instance is created from the logging message." msgstr "" -"Los mensajes de registro se codifican como instancias de la clase :class:" -"`logging.LogRecord`. Cuando un *logger* decide registrar realmente un " -"evento, se crea una instancia :class:`~logging.LogRecord` a partir del " -"mensaje de registro." #: ../Doc/howto/logging.rst:872 msgid "" @@ -1525,21 +1075,6 @@ msgid "" "message (unless the *propagate* flag for a logger is set to a false value, " "at which point the passing to ancestor handlers stops)." msgstr "" -"Los mensajes de registro están sujetos a un mecanismo de envío mediante el " -"uso de :dfn:`handlers`, que son instancias de subclases de la clase :class:" -"`Handler`. Los gestores son responsables de asegurar que un mensaje " -"registrado (en forma de :class:`LogRecord`) termine en una ubicación " -"particular (o conjunto de ubicaciones) que sea útil para el público al que " -"va dirigido ese mensaje (como usuarios finales, personal de asistencia " -"técnica, administradores de sistemas, desarrolladores). Los manejadores " -"pasan instancias :class:`LogRecord` destinadas a destinos particulares. Cada " -"*logger* puede tener cero, uno o más manejadores asociados a él (a través " -"del método :meth:`~Logger.addHandler` de :class:`Logger`). Además de los " -"*handlers* directamente asociados a un *logger*, todos los manejadores " -"(*handlers*) asociados a todos los ancestros del *logger* son llamados a " -"enviar el mensaje (a menos que el flag *propagate* de un *logger* se " -"establezca en un valor falso, en cuyo caso el paso a los *handlers* " -"ancestrales se detiene)." #: ../Doc/howto/logging.rst:886 msgid "" @@ -1550,16 +1085,10 @@ msgid "" "defined subclasses of :class:`Handler` will need to override this :meth:" "`~Handler.emit`." msgstr "" -"Al igual que para los *logger*, los gestores pueden tener niveles asociados " -"a ellos. El nivel de un gestor actúa como un filtro de la misma manera que " -"el nivel de un *logger*. Si un manejador (*handler*) decide realmente enviar " -"un evento, el método :meth:`~Handler.emit` se utiliza para enviar el mensaje " -"a su destino. La mayoría de las subclases definidas por el usuario de :class:" -"`Handler` necesitarán anular este :meth:`~Handler.emit`." #: ../Doc/howto/logging.rst:895 msgid "Custom Levels" -msgstr "Niveles personalizados" +msgstr "" #: ../Doc/howto/logging.rst:897 msgid "" @@ -1573,42 +1102,26 @@ msgid "" "difficult for the using developer to control and/or interpret, because a " "given numeric value might mean different things for different libraries." msgstr "" -"Definir sus propios niveles es posible, pero no debería ser necesario, ya " -"que los niveles existentes se han elegido sobre la base de la experiencia " -"práctica. Sin embargo, si usted está convencido de que necesita niveles " -"personalizados, debe tener mucho cuidado al hacer esto, y es posiblemente " -"*una muy mala idea definir niveles personalizados si está desarrollando una " -"biblioteca*. Esto se debe a que si los autores de múltiples bibliotecas " -"definen sus propios niveles personalizados, existe la posibilidad de que el " -"resultado del registro de tales bibliotecas múltiples utilizadas " -"conjuntamente sea difícil de controlar y/o interpretar para el desarrollador " -"usuario, porque un valor numérico dado podría significar cosas diferentes " -"para diferentes bibliotecas." #: ../Doc/howto/logging.rst:910 msgid "Useful Handlers" -msgstr "Gestores útiles" +msgstr "" #: ../Doc/howto/logging.rst:912 msgid "" "In addition to the base :class:`Handler` class, many useful subclasses are " "provided:" msgstr "" -"Además de la base :class:`Handler` class, se proporcionan muchas subclases " -"útiles:" #: ../Doc/howto/logging.rst:915 msgid "" ":class:`StreamHandler` instances send messages to streams (file-like " "objects)." msgstr "" -":class:`StreamHandler` instancias envían mensajes a los *streams* (objetos " -"como de tipo archivo)." #: ../Doc/howto/logging.rst:918 msgid ":class:`FileHandler` instances send messages to disk files." msgstr "" -":class:`FileHandler` instancias enviar mensajes a los archivos del disco." #: ../Doc/howto/logging.rst:920 msgid "" @@ -1617,87 +1130,60 @@ msgid "" "directly. Instead, use :class:`~handlers.RotatingFileHandler` or :class:" "`~handlers.TimedRotatingFileHandler`." msgstr "" -":class:`~handlers.BaseRotatingHandler` es la clase base para los manejadores " -"(*handlers*) que rotan los archivos de registro en un punto determinado. No " -"está pensada para ser instanciada directamente. En su lugar, utilice :class:" -"`~handlers.RotatingFileHandler` o :class:`~handlers." -"TimedRotatingFileHandler`." #: ../Doc/howto/logging.rst:925 msgid "" ":class:`~handlers.RotatingFileHandler` instances send messages to disk " "files, with support for maximum log file sizes and log file rotation." msgstr "" -"Las instancias de :class:`~handlers.RotatingFileHandler` envían mensajes a " -"los archivos de disco, con soporte para el tamaño máximo de los archivos de " -"registro y la rotación de los mismos." #: ../Doc/howto/logging.rst:928 msgid "" ":class:`~handlers.TimedRotatingFileHandler` instances send messages to disk " "files, rotating the log file at certain timed intervals." msgstr "" -"Las instancias de :class:`~handlers.TimedRotatingFileHandler` envían " -"mensajes a los archivos de disco, rotando el archivo de registro a ciertos " -"intervalos de tiempo." #: ../Doc/howto/logging.rst:931 msgid "" ":class:`~handlers.SocketHandler` instances send messages to TCP/IP sockets. " "Since 3.4, Unix domain sockets are also supported." msgstr "" -"Las instancias de :class:`~handlers.SocketHandler` envían mensajes a los " -"sockets TCP/IP. Desde la versión 3.4, los sockets de dominio Unix también " -"están soportados." #: ../Doc/howto/logging.rst:934 msgid "" ":class:`~handlers.DatagramHandler` instances send messages to UDP sockets. " "Since 3.4, Unix domain sockets are also supported." msgstr "" -"Instancias de :class:`~handlers.DatagramHandler` envían mensajes a los " -"sockets UDP. Desde la versión 3.4, los sockets de dominio Unix también están " -"soportados." #: ../Doc/howto/logging.rst:937 msgid "" ":class:`~handlers.SMTPHandler` instances send messages to a designated email " "address." msgstr "" -"Las instancias de :class:`~handlers.SMTPHandler` envían mensajes a una " -"dirección de correo electrónico designada." #: ../Doc/howto/logging.rst:940 msgid "" ":class:`~handlers.SysLogHandler` instances send messages to a Unix syslog " "daemon, possibly on a remote machine." msgstr "" -"Las instancias de :class:`~handlers.SysLogHandler` envían mensajes a un " -"demonio del syslog de Unix, posiblemente en una máquina remota." #: ../Doc/howto/logging.rst:943 msgid "" ":class:`~handlers.NTEventLogHandler` instances send messages to a Windows " "NT/2000/XP event log." msgstr "" -"Las instancias de :class:`~handlers.NTEventLogHandler` envían mensajes a un " -"registro de eventos de Windows NT/2000/XP." #: ../Doc/howto/logging.rst:946 msgid "" ":class:`~handlers.MemoryHandler` instances send messages to a buffer in " "memory, which is flushed whenever specific criteria are met." msgstr "" -"Las instancias de :class:`~handlers.MemoryHandler` envían mensajes a un " -"buffer en la memoria, que es limpiado cuando se cumplen ciertos criterios." #: ../Doc/howto/logging.rst:949 msgid "" ":class:`~handlers.HTTPHandler` instances send messages to an HTTP server " "using either ``GET`` or ``POST`` semantics." msgstr "" -"Las instancias de :class:`~handlers.HTTPHandler` envían mensajes a un " -"servidor HTTP usando la semántica de \"GET\" o \"POST\"." #: ../Doc/howto/logging.rst:952 msgid "" @@ -1706,19 +1192,12 @@ msgid "" "name. This handler is only useful on Unix-like systems; Windows does not " "support the underlying mechanism used." msgstr "" -"Las instancias de :class:`~handlers.WatchedFileHandler` ven el archivo al " -"que están accediendo. Si el archivo cambia, se cierra y se vuelve a abrir " -"usando el nombre del archivo. Este manejador sólo es útil en sistemas tipo " -"Unix; Windows no soporta el mecanismo subyacente utilizado." #: ../Doc/howto/logging.rst:957 msgid "" ":class:`~handlers.QueueHandler` instances send messages to a queue, such as " "those implemented in the :mod:`queue` or :mod:`multiprocessing` modules." msgstr "" -"Las instancias de :class:`~handlers.QueueHandler` envían mensajes a una " -"cola, como los implementados en los módulos :mod:`queue` or :mod:" -"`multiprocessing`." #: ../Doc/howto/logging.rst:960 msgid "" @@ -1728,20 +1207,14 @@ msgid "" "the library user has not configured logging. See :ref:`library-config` for " "more information." msgstr "" -":class:`NullHandler` instancias no hacen nada con los mensajes de error. Son " -"utilizadas por los desarrolladores de bibliotecas que quieren utilizar el " -"registro, pero quieren evitar el mensaje \"No se pudo encontrar ningún " -"controlador para el registrador XXX\", que puede mostrarse si el usuario de " -"la biblioteca no ha configurado el registro. Vea :ref:`library-config` para " -"más información." #: ../Doc/howto/logging.rst:966 msgid "The :class:`NullHandler` class." -msgstr "La clase :class:`NullHandler`." +msgstr "" #: ../Doc/howto/logging.rst:969 msgid "The :class:`~handlers.QueueHandler` class." -msgstr "La :class:`~handlers.QueueHandler` (La clase de gestores de Cola)." +msgstr "" #: ../Doc/howto/logging.rst:972 msgid "" @@ -1750,11 +1223,6 @@ msgid "" "defined in a sub-module, :mod:`logging.handlers`. (There is also another sub-" "module, :mod:`logging.config`, for configuration functionality.)" msgstr "" -"Las clases :class:`NullHandler`, :class:`StreamHandler` y :class:" -"`FileHandler` están definidas en el paquete de registro del núcleo. Los " -"otros manejadores se definen en un sub-módulo, :mod:`logging.handlers`. " -"(También hay otro submódulo, :mod:`logging.config`, para la funcionalidad de " -"configuración)" #: ../Doc/howto/logging.rst:977 msgid "" @@ -1762,9 +1230,6 @@ msgid "" "class:`Formatter` class. They are initialized with a format string suitable " "for use with the % operator and a dictionary." msgstr "" -"Los mensajes registrados son formateados para su presentación a través de " -"instancias de la clase :class:`Formatter`. Se inicializan con una cadena de " -"formato adecuada para su uso con el operador % y un diccionario." #: ../Doc/howto/logging.rst:981 msgid "" @@ -1773,10 +1238,6 @@ msgid "" "applied to each message in the batch), there is provision for header and " "trailer format strings." msgstr "" -"Para dar formato a varios mensajes en un lote, se pueden utilizar instancias " -"de :class:`~handlers.BufferingFormatter`. Además de la cadena de formato " -"(que se aplica a cada mensaje del lote), hay una provisión para cadenas de " -"formato de cabecera y de trailer." #: ../Doc/howto/logging.rst:986 msgid "" @@ -1787,13 +1248,6 @@ msgid "" "consult all their filters for permission. If any filter returns a false " "value, the message is not processed further." msgstr "" -"Cuando el filtrado basado en el nivel de *logger* o el nivel de manejador " -"(*handler*) no es suficiente, se pueden añadir instancias de :class:`Filter` " -"tanto a :class:`Logger` como a :class:`Handler` instancias (a través de su " -"método :meth:`~Handler.addFilter`). Antes de decidir procesar un mensaje más " -"adelante, tanto los *loggers* como los manejadores (*handlers*) consultan " -"todos sus filtros para obtener permiso. Si algún filtro retorna un valor " -"falso, el mensaje no se procesa más." #: ../Doc/howto/logging.rst:993 msgid "" @@ -1801,14 +1255,10 @@ msgid "" "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 funcionalidad básica :class:`Filtro` permite filtrar por un nombre de " -"registro específico. Si se utiliza esta función, los mensajes enviados al " -"registrador nombrado y a sus hijos se permiten a través del filtro, y todos " -"los demás se eliminan." #: ../Doc/howto/logging.rst:1001 msgid "Exceptions raised during logging" -msgstr "Excepciones lanzadas durante logging" +msgstr "" #: ../Doc/howto/logging.rst:1003 msgid "" @@ -1817,11 +1267,6 @@ msgid "" "logging events - such as logging misconfiguration, network or other similar " "errors - do not cause the application using logging to terminate prematurely." msgstr "" -"El paquete de tala está diseñado para tragarse las excepciones que se " -"producen durante la tala en la producción. Esto es así para que los errores " -"que ocurren durante el manejo de los eventos de registro - como la mala " -"configuración del registro, errores de red u otros errores similares - no " -"causen que la aplicación que utiliza el registro termine prematuramente." #: ../Doc/howto/logging.rst:1008 msgid "" @@ -1830,10 +1275,6 @@ msgid "" "method of a :class:`Handler` subclass are passed to its :meth:`~Handler." "handleError` method." msgstr "" -"Las excepciones de :class:`SystemExit` (Salida del sistema) y :class:" -"`KeyboardInterrupt` (Interrupción del teclado) nunca se tragan. Otras " -"excepciones que ocurren durante el método :meth:`~Handler.emit` de una " -"subclase :class:`Handler` se pasan a su método :meth:`~Handler.handleError` ." #: ../Doc/howto/logging.rst:1013 msgid "" @@ -1842,10 +1283,6 @@ msgid "" "is set. If set, a traceback is printed to :data:`sys.stderr`. If not set, " "the exception is swallowed." msgstr "" -"La implementación por defecto de :meth:`~Handler.handleError` en :class:" -"`Handler` comprueba si una variable de nivel de módulo, :data:" -"`raiseExceptions`, está establecida. Si se establece, se imprime una traza " -"en :data:`sys.stderr`. Si no se establece, se traga la excepción." #: ../Doc/howto/logging.rst:1018 msgid "" @@ -1854,14 +1291,10 @@ msgid "" "occur. It's advised that you set :data:`raiseExceptions` to ``False`` for " "production usage." msgstr "" -"El valor por defecto de :data:`raiseExceptions` (lanzar excepciones) es " -"``True``. Esto se debe a que durante el desarrollo, normalmente quieres ser " -"notificado de cualquier excepción que ocurra. Se aconseja que establezca :" -"data:`raiseExceptions` a ``False`` para el uso en producción." #: ../Doc/howto/logging.rst:1028 msgid "Using arbitrary objects as messages" -msgstr "Usando objetos arbitrarios como mensajes" +msgstr "" #: ../Doc/howto/logging.rst:1030 msgid "" @@ -1874,18 +1307,10 @@ msgid "" "`~handlers.SocketHandler` emits an event by pickling it and sending it over " "the wire." msgstr "" -"En las secciones y ejemplos anteriores, se ha supuesto que el mensaje pasado " -"al registrar el suceso es una cadena. Sin embargo, esta no es la única " -"posibilidad. Se puede pasar un objeto arbitrario como mensaje, y su método :" -"meth:`~object.__str__` será llamado cuando el sistema de registro necesite " -"convertirlo en una representación de cadena. De hecho, si quieres, puedes " -"evitar computar una representación de cadena por completo - por ejemplo, el " -"método :class:`~handlers.SocketHandler` emite un evento al *pickling* y " -"enviarlo por el cable." #: ../Doc/howto/logging.rst:1041 msgid "Optimization" -msgstr "Optimización" +msgstr "" #: ../Doc/howto/logging.rst:1043 msgid "" @@ -1897,22 +1322,12 @@ msgid "" "event would be created by the Logger for that level of call. You can write " "code like this::" msgstr "" -"El formato de los argumentos del mensaje se aplaza hasta que no se pueda " -"evitar. Sin embargo, el cálculo de los argumentos pasados al método de " -"registro también puede ser costoso, y puede que quieras evitar hacerlo si el " -"registrador simplemente tirará tu evento. Para decidir qué hacer, puedes " -"llamar al método :meth:`~Logger.isEnabledFor` que toma un argumento de nivel " -"y retorna true si el evento sería creado por el *Logger* para ese nivel de " -"llamada. Puedes escribir código como este::" #: ../Doc/howto/logging.rst:1055 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 modo que si el umbral del registrador se establece por encima de " -"``DEBUG``, las llamadas a :func:`expensive_func1` y :func:`expensive_func2` " -"nunca se hacen." #: ../Doc/howto/logging.rst:1058 msgid "" @@ -1925,16 +1340,6 @@ msgid "" "need to be recomputed when the logging configuration changes dynamically " "while the application is running (which is not all that common)." msgstr "" -"En algunos casos, :meth:`~Logger.isEnabledFor` puede ser en sí mismo más " -"caro de lo que te gustaría (por ejemplo, para los *loggers* profundamente " -"anidados donde un nivel explícito sólo se establece en lo alto de la " -"jerarquía de *loggers*). En estos casos (o si quieres evitar llamar a un " -"método en bucles estrechos), puedes guardar en caché el resultado de una " -"llamada a :meth:`~Logger.isEnabledFor` en una variable local o de instancia, " -"y usarla en lugar de llamar al método cada vez. Tal valor en caché sólo " -"necesitaría ser recalculado cuando la configuración de registro cambie " -"dinámicamente mientras la aplicación se está ejecutando (lo cual no es tan " -"común)." #: ../Doc/howto/logging.rst:1067 msgid "" @@ -1943,22 +1348,18 @@ msgid "" "Here's a list of things you can do to avoid processing during logging which " "you don't need:" msgstr "" -"Hay otras optimizaciones que pueden hacerse para aplicaciones específicas " -"que necesitan un control más preciso sobre la información de registro que se " -"recoge. Aquí hay una lista de cosas que puede hacer para evitar el " -"procesamiento durante el registro que no necesita:" #: ../Doc/howto/logging.rst:1073 msgid "What you don't want to collect" -msgstr "Lo que no quieres colectar" +msgstr "" #: ../Doc/howto/logging.rst:1073 msgid "How to avoid collecting it" -msgstr "Cómo evitar coleccionarlo" +msgstr "" #: ../Doc/howto/logging.rst:1075 msgid "Information about where calls were made from." -msgstr "Información sobre dónde se hicieron las llamadas." +msgstr "" #: ../Doc/howto/logging.rst:1075 msgid "" @@ -1967,26 +1368,22 @@ msgid "" "(which can't speed up code that uses :func:`sys._getframe`), if and when " "PyPy supports Python 3.x." msgstr "" -"Ponga ``logging._srcfile`` a ``None``. Esto evita llamar a :func:`sys." -"_getframe`, lo que puede ayudar a acelerar tu código en entornos como PyPy " -"(cual no puede acelerar el código que usa :func:`sys._getframe`), siempre y " -"cuando PyPy soporte Python 3.x." #: ../Doc/howto/logging.rst:1083 msgid "Threading information." -msgstr "Información sobre código con hilos." +msgstr "" #: ../Doc/howto/logging.rst:1083 msgid "Set ``logging.logThreads`` to ``0``." -msgstr "Ponga ``logging.logThreads`` en ``0``." +msgstr "" #: ../Doc/howto/logging.rst:1085 msgid "Process information." -msgstr "Procesar la información." +msgstr "" #: ../Doc/howto/logging.rst:1085 msgid "Set ``logging.logProcesses`` to ``0``." -msgstr "Ponga ``logging.logProcesses`` en ``0``." +msgstr "" #: ../Doc/howto/logging.rst:1088 msgid "" @@ -1994,34 +1391,31 @@ msgid "" "you don't import :mod:`logging.handlers` and :mod:`logging.config`, they " "won't take up any memory." msgstr "" -"Observe también que el módulo de registro del núcleo sólo incluye los " -"gestores básicos. Si no importas :mod:`logging.handlers` y :mod:`logging." -"config`, no ocuparán ninguna memoria." #: ../Doc/howto/logging.rst:1095 msgid "Module :mod:`logging`" -msgstr "Módulo :mod:`logging`" +msgstr "" #: ../Doc/howto/logging.rst:1095 msgid "API reference for the logging module." -msgstr "Referencia API para el módulo de registro." +msgstr "" #: ../Doc/howto/logging.rst:1098 msgid "Module :mod:`logging.config`" -msgstr "Módulo :mod:`logging.config`" +msgstr "" #: ../Doc/howto/logging.rst:1098 msgid "Configuration API for the logging module." -msgstr "API de configuración para el módulo de registro." +msgstr "" #: ../Doc/howto/logging.rst:1101 msgid "Module :mod:`logging.handlers`" -msgstr "Módulo :mod:`logging.handlers`" +msgstr "" #: ../Doc/howto/logging.rst:1101 msgid "Useful handlers included with the logging module." -msgstr "Gestores útiles incluidos en el módulo de registro." +msgstr "" #: ../Doc/howto/logging.rst:1103 msgid ":ref:`A logging cookbook `" -msgstr ":ref:`Un libro de recetas `" +msgstr "" From aff53b0ccf4c23d54780de43f8a3a077614e7a39 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Fri, 19 Mar 2021 20:07:34 -0300 Subject: [PATCH 28/34] fix logging.po --- howto/logging.po | 5 ----- 1 file changed, 5 deletions(-) diff --git a/howto/logging.po b/howto/logging.po index 7e4b71b9c8..19f60029af 100644 --- a/howto/logging.po +++ b/howto/logging.po @@ -73,11 +73,6 @@ msgstr "" msgid "" "Display console output for ordinary usage of a command line script or program" msgstr "" -<<<<<<< HEAD -======= -"Mostrar salidas de la consola para el uso ordinario de un programa o guión " -"(script) de línea de comandos" ->>>>>>> ef6d38dfd7b12a547cf0564e083b04ef3a61dfc7 #: ../Doc/howto/logging.rst:33 msgid ":func:`print`" From 077268031b82169502c45e177d1b05a3400dc986 Mon Sep 17 00:00:00 2001 From: "Carlos A. Crespo" Date: Fri, 19 Mar 2021 20:11:45 -0300 Subject: [PATCH 29/34] powrap --- howto/logging.po | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/howto/logging.po b/howto/logging.po index 19f60029af..c2aceeb52a 100644 --- a/howto/logging.po +++ b/howto/logging.po @@ -11,9 +11,9 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: 2021-03-19 19:34-0300\n" +"PO-Revision-Date: 2021-03-19 20:11-0300\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -1378,7 +1378,6 @@ msgid "Information about where calls were made from." msgstr "" #: ../Doc/howto/logging.rst:1084 -#, fuzzy msgid "" "Set ``logging._srcfile`` to ``None``. This avoids calling :func:`sys." "_getframe`, which may help to speed up your code in environments like PyPy " From ea80a1863d0d0b845d356182f044b770b5ab8856 Mon Sep 17 00:00:00 2001 From: Cristian Maureira-Fredes Date: Sat, 20 Mar 2021 15:18:18 +0100 Subject: [PATCH 30/34] =?UTF-8?q?Ajustando=20traducci=C3=B3n=20con=20warni?= =?UTF-8?q?ngs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- howto/logging-cookbook.po | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 8f1c2126f3..b0e8753604 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -1277,9 +1277,8 @@ msgstr "" ":rfc:`5424` requiere que se envíe un mensaje Unicode a un demonio syslog " "como un conjunto de bytes que tienen la siguiente estructura: un componente " "opcional puro-ASCII, seguido de una Marca de Orden de Bytes UTF-8 (*BOM* por " -"sus siglas en inglés), seguida de codificado en Unicode usando UTF-8. " -"(Consulte la :rfc:`sección relevante de la especificación <5424 # " -"section-6>`.)" +"sus siglas en inglés), seguida de codificado en Unicode usando UTF-8. (See " +"the :rfc:`relevant section of the specification <5424#section-6>`.)" #: ../Doc/howto/logging-cookbook.rst:1695 msgid "" From 6ace292ae80c5c33c7b786087c91f1030c88b0f6 Mon Sep 17 00:00:00 2001 From: Cristian Maureira-Fredes Date: Sat, 20 Mar 2021 15:21:58 +0100 Subject: [PATCH 31/34] Quitando cambios a otro archivo --- howto/logging.po | 768 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 687 insertions(+), 81 deletions(-) diff --git a/howto/logging.po b/howto/logging.po index c2aceeb52a..dea17495f3 100644 --- a/howto/logging.po +++ b/howto/logging.po @@ -10,33 +10,32 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-06 11:59-0400\n" -"PO-Revision-Date: 2021-03-19 20:11-0300\n" +"POT-Creation-Date: 2021-03-19 11:16+0100\n" +"PO-Revision-Date: 2020-05-29 17:19-0700\n" +"Last-Translator: \n" +"Language: es_US\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.4.2\n" -"Last-Translator: \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Language: es_US\n" +"Generated-By: Babel 2.8.0\n" #: ../Doc/howto/logging.rst:3 msgid "Logging HOWTO" -msgstr "" +msgstr "HOWTO Hacer Registros (*Logging*)" #: ../Doc/howto/logging.rst msgid "Author" -msgstr "" +msgstr "Autor" #: ../Doc/howto/logging.rst:5 msgid "Vinay Sajip " -msgstr "" +msgstr "Vinay Sajip " #: ../Doc/howto/logging.rst:12 msgid "Basic Logging Tutorial" -msgstr "" +msgstr "Tutorial Básico de *Logging*" #: ../Doc/howto/logging.rst:14 msgid "" @@ -48,10 +47,18 @@ msgid "" "which the developer ascribes to the event; the importance can also be called " "the *level* or *severity*." msgstr "" +"*Logging* es un medio de rastrear los eventos que ocurren cuando se ejecuta " +"algún software. El desarrollador del software agrega llamadas de registro a " +"su código para indicar que ciertos eventos han ocurrido. Un evento se " +"describe mediante un mensaje descriptivo que puede contener opcionalmente " +"datos variables (es decir, datos que son potencialmente diferentes para cada " +"ocurrencia del evento). Los eventos también tienen una importancia que el " +"desarrollador atribuye al evento; la importancia también puede llamarse el " +"*nivel* o la *severidad*." #: ../Doc/howto/logging.rst:23 msgid "When to use logging" -msgstr "" +msgstr "Cuándo usar *logging*" #: ../Doc/howto/logging.rst:25 msgid "" @@ -60,71 +67,94 @@ msgid "" "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 "" +"*Logging* proporciona un conjunto de funciones convenientes para un uso " +"sencillo de registro. Estas son :func:`debug`, :func:`info`, :func:" +"`warning`, :func:`error` y :func:`critical`. Para determinar cuándo usar el " +"registro, vea la tabla de abajo, que indica, para cada una de las tareas " +"comunes, la mejor herramienta a usar para ello." #: ../Doc/howto/logging.rst:31 msgid "Task you want to perform" -msgstr "" +msgstr "La tarea que quieres realizar" #: ../Doc/howto/logging.rst:31 msgid "The best tool for the task" -msgstr "" +msgstr "La mejor herramienta para la tarea" #: ../Doc/howto/logging.rst:33 msgid "" "Display console output for ordinary usage of a command line script or program" msgstr "" +"Mostrar salidas de la consola para el uso ordinario de un programa o guión " +"(script) de línea de comandos" #: ../Doc/howto/logging.rst:33 msgid ":func:`print`" -msgstr "" +msgstr ":func:`print`" #: ../Doc/howto/logging.rst:37 msgid "" "Report events that occur during normal operation of a program (e.g. for " "status monitoring or fault investigation)" msgstr "" +"Reportar eventos que ocurren durante el funcionamiento normal de un programa " +"(por ejemplo, para la supervisión del estado o la investigación de fallos)" #: ../Doc/howto/logging.rst:37 msgid "" ":func:`logging.info` (or :func:`logging.debug` for very detailed output for " "diagnostic purposes)" msgstr "" +":func:`logging.info` (o :func:`logging.debug` para salidas de registro muy " +"detalladas con fines de diagnóstico)" #: ../Doc/howto/logging.rst:42 msgid "Issue a warning regarding a particular runtime event" msgstr "" +"Emitir una advertencia con respecto a un evento de tiempo de ejecución en " +"particular" #: ../Doc/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` en el código de la biblioteca si el problema es " +"evitable y la aplicación cliente debe ser modificada para eliminar la " +"advertencia" #: ../Doc/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 no hay nada que la aplicación cliente pueda hacer " +"sobre la situación, pero el evento debe ser anotado" #: ../Doc/howto/logging.rst:52 msgid "Report an error regarding a particular runtime event" msgstr "" +"Reportar un error con respecto a un evento particular al tiempo de ejecución" #: ../Doc/howto/logging.rst:52 msgid "Raise an exception" -msgstr "" +msgstr "Lanza una excepción" #: ../Doc/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 "" +"Reporta la supresión de un error sin invocar una excepción (por ejemplo, el " +"manejador de errores en un proceso de servidor de larga duración)" #: ../Doc/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` o :func:`logging.critical` " +"según sea apropiado para el error específico y el dominio de la aplicación" #: ../Doc/howto/logging.rst:62 msgid "" @@ -132,35 +162,40 @@ msgid "" "they are used to track. The standard levels and their applicability are " "described below (in increasing order of severity):" msgstr "" +"Las funciones de registro se denominan según el nivel o la gravedad de los " +"eventos que se utilizan para rastrear. A continuación se describen los " +"niveles estándar y su aplicabilidad (en orden creciente de gravedad):" #: ../Doc/howto/logging.rst:69 ../Doc/howto/logging.rst:855 msgid "Level" -msgstr "" +msgstr "Nivel" #: ../Doc/howto/logging.rst:69 msgid "When it's used" -msgstr "" +msgstr "Cuando es usado" #: ../Doc/howto/logging.rst:71 ../Doc/howto/logging.rst:865 msgid "``DEBUG``" -msgstr "" +msgstr "``DEBUG``" #: ../Doc/howto/logging.rst:71 msgid "" "Detailed information, typically of interest only when diagnosing problems." msgstr "" +"Información detallada, típicamente de interés sólo durante el diagnóstico de " +"problemas." #: ../Doc/howto/logging.rst:74 ../Doc/howto/logging.rst:863 msgid "``INFO``" -msgstr "" +msgstr "``INFO``" #: ../Doc/howto/logging.rst:74 msgid "Confirmation that things are working as expected." -msgstr "" +msgstr "Confirmación de que las cosas están funcionando como se esperaba." #: ../Doc/howto/logging.rst:77 ../Doc/howto/logging.rst:861 msgid "``WARNING``" -msgstr "" +msgstr "``WARNING``" #: ../Doc/howto/logging.rst:77 msgid "" @@ -168,26 +203,33 @@ msgid "" "problem in the near future (e.g. 'disk space low'). The software is still " "working as expected." msgstr "" +"Un indicio de que algo inesperado sucedió, o indicativo de algún problema en " +"el futuro cercano (por ejemplo, \"espacio de disco bajo\"). El software " +"sigue funcionando como se esperaba." #: ../Doc/howto/logging.rst:82 ../Doc/howto/logging.rst:859 msgid "``ERROR``" -msgstr "" +msgstr "``ERROR``" #: ../Doc/howto/logging.rst:82 msgid "" "Due to a more serious problem, the software has not been able to perform " "some function." msgstr "" +"Debido a un problema más grave, el software no ha sido capaz de realizar " +"alguna función." #: ../Doc/howto/logging.rst:85 ../Doc/howto/logging.rst:857 msgid "``CRITICAL``" -msgstr "" +msgstr "``CRITICAL``" #: ../Doc/howto/logging.rst:85 msgid "" "A serious error, indicating that the program itself may be unable to " "continue running." msgstr "" +"Un grave error, que indica que el programa en sí mismo puede ser incapaz de " +"seguir funcionando." #: ../Doc/howto/logging.rst:89 msgid "" @@ -195,6 +237,9 @@ msgid "" "and above will be tracked, unless the logging package is configured to do " "otherwise." msgstr "" +"El nivel por defecto es ``WARNING``, lo que significa que sólo los eventos " +"de este nivel y superiores serán rastreados, a menos que el paquete de " +"registro esté configurado para hacer lo contrario." #: ../Doc/howto/logging.rst:93 msgid "" @@ -202,18 +247,21 @@ msgid "" "of handling tracked events is to print them to the console. Another common " "way is to write them to a disk file." msgstr "" +"Los eventos que se rastrean pueden ser manejados en diferentes maneras. La " +"forma más simple de manejar los eventos rastreados es imprimirlos en la " +"consola o terminal. Otra forma común es escribirlos en un archivo de disco." #: ../Doc/howto/logging.rst:101 msgid "A simple example" -msgstr "" +msgstr "Un simple ejemplo" #: ../Doc/howto/logging.rst:103 msgid "A very simple example is::" -msgstr "" +msgstr "Un ejemplo muy simple es::" #: ../Doc/howto/logging.rst:109 msgid "If you type these lines into a script and run it, you'll see:" -msgstr "" +msgstr "Si escribes estas líneas en un script y lo ejecutas, verás:" #: ../Doc/howto/logging.rst:115 msgid "" @@ -224,10 +272,17 @@ msgid "" "explained later. The actual output can be formatted quite flexibly if you " "need that; formatting options will also be explained later." msgstr "" +"impreso en la consola. El mensaje ``INFO`` no aparece porque el nivel por " +"defecto es ``WARNING``. El mensaje impreso incluye la indicación del nivel y " +"la descripción del evento proporcionado en la llamada de registro, es decir, " +"\"¡Cuidado!\". No te preocupes por la parte de la ‘root’ por ahora: se " +"explicará más adelante. La salida real puede ser formateada con bastante " +"flexibilidad si lo necesita; las opciones de formato también se explicarán " +"más adelante." #: ../Doc/howto/logging.rst:124 msgid "Logging to a file" -msgstr "" +msgstr "Logging a un archivo" #: ../Doc/howto/logging.rst:126 msgid "" @@ -236,6 +291,10 @@ msgid "" "Python interpreter, and don't just continue from the session described " "above::" msgstr "" +"Una situación muy común es la de registrar archivos de log, así que veamos " +"eso a continuación. Asegúrese de intentar lo siguiente en un intérprete de " +"Python recién iniciado, y no sólo continúe de la sesión descrita " +"anteriormente::" #: ../Doc/howto/logging.rst:137 msgid "" @@ -251,6 +310,8 @@ msgid "" "And now if we open the file and look at what we have, we should find the log " "messages:" msgstr "" +"Y ahora si abrimos el archivo y miramos lo que tenemos, deberíamos encontrar " +"los mensajes de registro:" #: ../Doc/howto/logging.rst:154 msgid "" @@ -258,17 +319,24 @@ msgid "" "threshold for tracking. In this case, because we set the threshold to " "``DEBUG``, all of the messages were printed." msgstr "" +"Este ejemplo también muestra cómo se puede establecer el nivel de registro " +"que actúa como umbral para el rastreo. En este caso, como establecimos el " +"umbral en ``DEBUG``, todos los mensajes fueron impresos." #: ../Doc/howto/logging.rst:158 msgid "" "If you want to set the logging level from a command-line option such as:" msgstr "" +"Si quieres establecer el nivel de registro desde una opción de línea de " +"comandos como:" #: ../Doc/howto/logging.rst:164 msgid "" "and you have the value of the parameter passed for ``--log`` in some " "variable *loglevel*, you can use::" msgstr "" +"y tienes el valor del parámetro pasado por ``--log`` en alguna variable " +"*loglevel*, puedes usar::" #: ../Doc/howto/logging.rst:169 msgid "" @@ -276,6 +344,9 @@ msgid "" "argument. You may want to error check any user input value, perhaps as in " "the following example::" msgstr "" +"para obtener el valor que pasarás a :func:`basicConfig` mediante el " +"argumento *level*. Puede que quieras comprobar un error por cualquier valor " +"de entrada del usuario, quizás como en el siguiente ejemplo::" #: ../Doc/howto/logging.rst:181 msgid "" @@ -284,6 +355,10 @@ msgid "" "configuration facility, only the first call will actually do anything: " "subsequent calls are effectively no-ops." msgstr "" +"La llamada a :func:`basicConfig` debería venir *antes* de cualquier llamada " +"a :func:`debug`, :func:`info` etc. Como se pretende hacer una simple " +"facilidad de configuración única, sólo la primera llamada hará realmente " +"algo: las llamadas subsiguientes son efectivamente no-ops." #: ../Doc/howto/logging.rst:186 msgid "" @@ -292,26 +367,35 @@ msgid "" "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 ejecutas el script anterior varias veces, los mensajes de las ejecuciones " +"sucesivas se añaden al archivo *example.log*. Si quieres que cada ejecución " +"se inicie de nuevo, sin recordar los mensajes de ejecuciones anteriores, " +"puedes especificar el argumento *filemode*, cambiando la llamada en el " +"ejemplo anterior a::" #: ../Doc/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 impresión será la misma que antes, pero el archivo de registro ya no se " +"adjunta, por lo que los mensajes de las ejecuciones anteriores se pierden." #: ../Doc/howto/logging.rst:198 msgid "Logging from multiple modules" -msgstr "" +msgstr "*Logging* de múltiples módulos" #: ../Doc/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 su programa consiste de múltiples módulos, aquí hay un ejemplo de cómo " +"podría organizar el inicio de sesión en él::" #: ../Doc/howto/logging.rst:224 msgid "If you run *myapp.py*, you should see this in *myapp.log*:" -msgstr "" +msgstr "Si ejecutas *myapp.py*, deberías ver esto en *myapp.log*:" #: ../Doc/howto/logging.rst:232 msgid "" @@ -323,20 +407,30 @@ msgid "" "to refer to the documentation beyond the tutorial level -- see :ref:`logging-" "advanced-tutorial`." msgstr "" +"que es lo que esperabas ver. Puedes generalizar esto a múltiples módulos, " +"usando el modelo en *mylib.py*. Ten en cuenta que para este simple patrón de " +"uso, no sabrás, mirando en el archivo de registro, *donde* en tu aplicación " +"vinieron tus mensajes, aparte de mirar la descripción del evento. Si quieres " +"rastrear la ubicación de tus mensajes, tendrás que consultar la " +"documentación más allá del nivel del tutorial -- ver :ref:`logging-advanced-" +"tutorial`." #: ../Doc/howto/logging.rst:242 msgid "Logging variable data" -msgstr "" +msgstr "Registrar datos de variables" #: ../Doc/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 "" +"Para registrar los datos de variables, utilice una cadena de formato para el " +"mensaje de descripción del evento y añada los datos variables como " +"argumentos. Por ejemplo::" #: ../Doc/howto/logging.rst:250 msgid "will display:" -msgstr "" +msgstr "se mostrará:" #: ../Doc/howto/logging.rst:256 #, python-format @@ -348,20 +442,29 @@ msgid "" "options *are* supported, but exploring them is outside the scope of this " "tutorial: see :ref:`formatting-styles` for more information." msgstr "" +"Como puedes ver, la fusión de datos de variables en el mensaje de " +"descripción de eventos utiliza el viejo estilo % de formato de cadena de " +"caracteres. Esto es para compatibilidad retrospectiva : el paquete de " +"registro precede las nuevas opciones de formato como :meth:`str.format` y :" +"class:`string.Template`. Estas nuevas opciones de formato *son* compatibles, " +"pero explorarlas está fuera del alcance de este tutorial: ver :ref:" +"`formatting-styles` para más información." #: ../Doc/howto/logging.rst:265 msgid "Changing the format of displayed messages" -msgstr "" +msgstr "Cambiar el formato de los mensajes mostrados" #: ../Doc/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 "" +"Para cambiar el formato que se utiliza para visualizar los mensajes, es " +"necesario especificar el formato que se desea utilizar::" #: ../Doc/howto/logging.rst:276 msgid "which would print:" -msgstr "" +msgstr "que se imprimirá:" #: ../Doc/howto/logging.rst:284 msgid "" @@ -372,10 +475,16 @@ msgid "" "including variable data) and perhaps to display when the event occurred. " "This is described in the next section." msgstr "" +"Noten que la ‘root’ que aparecía en los ejemplos anteriores ha desaparecido. " +"Para un conjunto completo de cosas que pueden aparecer en formato de " +"cadenas, puede consultar la documentación de :ref:`logrecord-attributes`, " +"pero para un uso sencillo, sólo necesita el *levelname* (gravedad), " +"*message* (descripción del evento, incluyendo los datos variables) y tal vez " +"mostrar cuándo ocurrió el evento. Esto se describe en la siguiente sección." #: ../Doc/howto/logging.rst:293 msgid "Displaying the date/time in messages" -msgstr "" +msgstr "Visualización de la fecha/hora en los mensajes" #: ../Doc/howto/logging.rst:295 #, python-format @@ -383,10 +492,12 @@ msgid "" "To display the date and time of an event, you would place '%(asctime)s' in " "your format string::" msgstr "" +"Para mostrar la fecha y la hora de un evento, usted colocaría '%(asctime)s' " +"en su cadena de formato::" #: ../Doc/howto/logging.rst:302 msgid "which should print something like this:" -msgstr "" +msgstr "que debería imprimir algo como esto:" #: ../Doc/howto/logging.rst:308 msgid "" @@ -394,20 +505,26 @@ msgid "" "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 "" +"El formato por defecto para la visualización de la fecha/hora (mostrado " +"arriba) es como ISO8601 o :rfc:`3339`. Si necesita más control sobre el " +"formato de la fecha/hora, proporcione un argumento *datefmt* a " +"``basicConfig``, como en este ejemplo::" #: ../Doc/howto/logging.rst:316 msgid "which would display something like this:" -msgstr "" +msgstr "que mostraría algo como esto:" #: ../Doc/howto/logging.rst:322 msgid "" "The format of the *datefmt* argument is the same as supported by :func:`time." "strftime`." msgstr "" +"El formato del argumento *datefmt* es el mismo que el soportado por :func:" +"`time.strftime`." #: ../Doc/howto/logging.rst:327 msgid "Next Steps" -msgstr "" +msgstr "Próximos pasos" #: ../Doc/howto/logging.rst:329 msgid "" @@ -417,6 +534,11 @@ msgid "" "time in reading the following sections. If you're ready for that, grab some " "of your favourite beverage and carry on." msgstr "" +"Eso concluye el tutorial básico. Debería ser suficiente para ponerte en " +"marcha con el registro. Hay mucho más que el paquete de registro ofrece, " +"pero para obtener lo mejor de él, tendrá que invertir un poco más de su " +"tiempo en la lectura de las siguientes secciones. Si estás listo para eso, " +"toma un poco de tu bebida favorita y sigue adelante." #: ../Doc/howto/logging.rst:335 msgid "" @@ -426,6 +548,11 @@ msgid "" "group (available at https://groups.google.com/forum/#!forum/comp.lang." "python) and you should receive help before too long." msgstr "" +"Si sus necesidades de registro son sencillas, utilice los ejemplos previos " +"para incorporar el registro en sus propios scripts, y si tiene problemas o " +"no entiende algo, por favor publique una pregunta en el grupo Usenet de comp." +"lang.python (disponible en https://groups.google.com/forum/#!forum/comp.lang." +"python) y debería recibir ayuda antes de que transcurra demasiado tiempo." #: ../Doc/howto/logging.rst:341 msgid "" @@ -433,42 +560,57 @@ msgid "" "slightly more advanced/in-depth tutorial than the basic one above. After " "that, you can take a look at the :ref:`logging-cookbook`." msgstr "" +"¿Todavía esta aquí? Puedes seguir leyendo las siguientes secciones, que " +"proporcionan un tutorial un poco más avanzado y profundo que el básico de " +"arriba. Después de eso, puedes echar un vistazo al :ref:`logging-cookbook`." #: ../Doc/howto/logging.rst:349 msgid "Advanced Logging Tutorial" -msgstr "" +msgstr "Tutorial de registro avanzado" #: ../Doc/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 biblioteca de logging adopta un enfoque modular y ofrece varias " +"categorías de componentes: registradores, gestores, filtros y formateadores." #: ../Doc/howto/logging.rst:354 msgid "Loggers expose the interface that application code directly uses." msgstr "" +"Los registradores exponen la interfaz que el código de la aplicación utiliza " +"directamente." #: ../Doc/howto/logging.rst:355 msgid "" "Handlers send the log records (created by loggers) to the appropriate " "destination." msgstr "" +"Los gestores envían los registros de log (creados por los registradores) al " +"destino apropiado." #: ../Doc/howto/logging.rst:357 msgid "" "Filters provide a finer grained facility for determining which log records " "to output." msgstr "" +"Los filtros proporcionan una instalación de grano más fino para determinar " +"qué registros de log se deben producir." #: ../Doc/howto/logging.rst:359 msgid "Formatters specify the layout of log records in the final output." msgstr "" +"Los formatos especifican la disposición de los archivos de log en el " +"resultado final." #: ../Doc/howto/logging.rst:361 msgid "" "Log event information is passed between loggers, handlers, filters and " "formatters in a :class:`LogRecord` instance." msgstr "" +"La información de los eventos de registro se pasa entre los registradores, " +"gestores, filtros y formateadores en una instancia :class:`LogRecord`." #: ../Doc/howto/logging.rst:364 msgid "" @@ -480,18 +622,32 @@ msgid "" "want, and indicate the area of an application in which a logged message " "originates." msgstr "" +"El registro se realiza llamando a métodos en instancias de la clase :class:" +"`Logger` (de aquí en adelante llamada :dfn:`loggers`). Cada instancia tiene " +"un nombre, y se organizan conceptualmente en una jerarquía de espacios de " +"nombres utilizando puntos (puntos) como separadores. Por ejemplo, un " +"registrador llamado \"scan\" es el padre de los registradores \"scan.text\", " +"\"scan.html\" y \"scan.pdf\". Los nombres de los registradores pueden ser " +"cualquier cosa que se desee, e indican el área de una aplicación en la que " +"se origina un mensaje registrado." #: ../Doc/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 "" +"Una buena convención que se puede utilizar para nombrar a los registradores " +"es utilizar un registrador a nivel de módulo, en cada módulo que utilice el " +"registro, llamado de la siguiente manera::" #: ../Doc/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 "" +"Esto significa que los nombres de los registradores rastrean la jerarquía de " +"paquetes/módulos, y es intuitivamente obvio donde se registran los eventos " +"sólo a partir del nombre del registrador." #: ../Doc/howto/logging.rst:379 msgid "" @@ -501,6 +657,11 @@ msgid "" "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 raíz de la jerarquía de los registradores se llama root *logger*. Ese es " +"el registrador usado por las funciones :func:`debug`, :func:`info`, :func:" +"`warning`, :func:`error` y :func:`critícal`, que sólo llaman al mismo método " +"del registrador raíz. Las funciones y los métodos tienen las mismas firmas. " +"El nombre del root *logger* se imprime como ‘root’ en la salida registrada." #: ../Doc/howto/logging.rst:385 msgid "" @@ -512,6 +673,14 @@ msgid "" "destination class if you have special requirements not met by any of the " "built-in handler classes." msgstr "" +"Por supuesto, es posible registrar mensajes a diferentes destinos. El " +"paquete incluye soporte para escribir mensajes de registro en archivos, " +"ubicaciones HTTP GET/POST, correo electrónico a través de SMTP, sockets " +"genéricos, colas o mecanismos de registro específicos del sistema operativo " +"como syslog o el registro de eventos de Windows NT. Los destinos son " +"servidos por clases :dfn:`handler`. Puedes crear tu propia clase de destino " +"de registro si tienes requisitos especiales que no se cumplen con ninguna de " +"las clases de gestor incorporadas." #: ../Doc/howto/logging.rst:392 msgid "" @@ -524,10 +693,20 @@ msgid "" "displayed message before delegating to the root logger to do the actual " "message output." msgstr "" +"Por defecto, no se establece ningún destino para los mensajes de registro. " +"Puede especificar un destino (como consola o archivo) usando :func:" +"`basicConfig` como en los ejemplos del tutorial. Si llama a las funciones :" +"func:`debug`, :func:`info`, :func:`warning`, :func:`error` y :func:" +"`critical`, ellas comprobarán si no hay ningún destino establecido; y si no " +"hay ninguno establecido, establecerán un destino de la consola (``sys." +"stderr``) y un formato por defecto para el mensaje mostrado antes de delegar " +"en el registrador root para hacer la salida real del mensaje." #: ../Doc/howto/logging.rst:400 msgid "The default format set by :func:`basicConfig` for messages is:" msgstr "" +"El formato por defecto establecido por :func:`basicConfig` para los mensajes " +"es:" #: ../Doc/howto/logging.rst:406 msgid "" @@ -535,20 +714,25 @@ msgid "" "the *format* keyword argument. For all options regarding how a format string " "is constructed, see :ref:`formatter-objects`." msgstr "" +"Puedes cambiar esto pasando una cadena de formato a :func:`basicConfig` con " +"el argumento de la palabra clave *format*. Para todas las opciones relativas " +"a cómo se construye una cadena de formato, ver :ref:`formatter-objects`." #: ../Doc/howto/logging.rst:411 msgid "Logging Flow" -msgstr "" +msgstr "Flujo de Registro" #: ../Doc/howto/logging.rst:413 msgid "" "The flow of log event information in loggers and handlers is illustrated in " "the following diagram." msgstr "" +"En el siguiente diagrama se ilustra el flujo de información de los eventos " +"de registro en los registradores y gestores." #: ../Doc/howto/logging.rst:419 msgid "Loggers" -msgstr "" +msgstr "Registradores" #: ../Doc/howto/logging.rst:421 msgid "" @@ -559,16 +743,25 @@ msgid "" "Third, logger objects pass along relevant log messages to all interested log " "handlers." msgstr "" +"Los objetos de :class:`Logger` tienen un trabajo triple. Primero, exponen " +"varios métodos al código de la aplicación para que las aplicaciones puedan " +"registrar mensajes en tiempo de ejecución. Segundo, los objetos *logger* " +"determinan sobre qué mensajes de registro actuar en base de la severidad (la " +"facilidad de filtrado por defecto) o los objetos de filtro. Tercero, los " +"objetos registradores pasan los mensajes de registro relevantes a todos los " +"manejadores de registro interesados." #: ../Doc/howto/logging.rst:427 msgid "" "The most widely used methods on logger objects fall into two categories: " "configuration and message sending." msgstr "" +"Los métodos más utilizados en los objetos de registro se dividen en dos " +"categorías: configuración y envío de mensajes." #: ../Doc/howto/logging.rst:430 msgid "These are the most common configuration methods:" -msgstr "" +msgstr "Estos son los métodos de configuración más comunes:" #: ../Doc/howto/logging.rst:432 msgid "" @@ -578,6 +771,11 @@ msgid "" "INFO, the logger will handle only INFO, WARNING, ERROR, and CRITICAL " "messages and will ignore DEBUG messages." msgstr "" +":meth:`Logger.setLevel` especifica el mensaje de registro de menor gravedad " +"que un registrador manejará, donde debug es el nivel de gravedad incorporado " +"más bajo y *critical* es el de mayor gravedad incorporado. Por ejemplo, si " +"el nivel de severidad es INFO, el registrador sólo manejará los mensajes " +"INFO, WARNING, ERROR y CRITICAL e ignorará los mensajes DEBUG." #: ../Doc/howto/logging.rst:438 msgid "" @@ -585,6 +783,9 @@ msgid "" "handler objects from the logger object. Handlers are covered in more detail " "in :ref:`handler-basic`." msgstr "" +":meth:`Logger.addHandler` y :meth:`Logger.removeHandler` agregan y quitan " +"los objetos *handler* del objeto *logger*. Los manejadores (*handlers*) se " +"tratan con más detalle en :ref:`handler-basic`." #: ../Doc/howto/logging.rst:442 msgid "" @@ -592,17 +793,24 @@ msgid "" "filter objects from the logger object. Filters are covered in more detail " "in :ref:`filter`." msgstr "" +":meth:`Logger.addFilter` y :meth:`Logger.removeFilter` agregan y quitan los " +"objetos de filtro del objeto logger. Los filtros se tratan con más detalle " +"en :ref:`filter`." #: ../Doc/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 "" +"No es necesario que siempre llames a estos métodos en cada registrador que " +"crees. Vea los dos últimos párrafos de esta sección." #: ../Doc/howto/logging.rst:449 msgid "" "With the logger object configured, the following methods create log messages:" msgstr "" +"Con el objeto *logger* configurado, los siguientes métodos crean mensajes de " +"log:" #: ../Doc/howto/logging.rst:451 #, python-format @@ -617,6 +825,16 @@ msgid "" "about a keyword of ``exc_info`` and use it to determine whether to log " "exception information." msgstr "" +":meth:`Logger.debug`, :meth:`Logger.info`, :meth:`Logger.warning`, :meth:" +"`Logger.error`, y :meth:`Logger.critical` todos crean registros de registro " +"con un mensaje y un nivel que corresponde a sus respectivos nombres de " +"método. El mensaje es en realidad una cadena de formato, que puede contener " +"la sintaxis estándar de sustitución de cadenas de ``%s``, ``%d``, ``%f``, y " +"así sucesivamente. El resto de sus argumentos es una lista de objetos que " +"se corresponden con los campos de sustitución del mensaje. Con respecto a " +"``**kwargs``, los métodos de registro sólo se preocupan por una palabra " +"clave de ``exc_info`` y la usan para determinar si registran información de " +"excepción." #: ../Doc/howto/logging.rst:461 msgid "" @@ -624,6 +842,10 @@ msgid "" "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` crea un mensaje de registro similar a :meth:`Logger." +"error`. La diferencia es que :meth:`Logger.exception` vuelca un rastro de " +"pila junto con él. Llama a este método sólo desde un manejador de " +"excepciones." #: ../Doc/howto/logging.rst:465 msgid "" @@ -632,6 +854,10 @@ msgid "" "convenience methods listed above, but this is how to log at custom log " "levels." msgstr "" +":meth:`Logger.log` toma un nivel de log como argumento explícito. Esto es " +"un poco más verboso para el registro de mensajes que usar los métodos de " +"conveniencia de nivel de registro listados arriba, pero así es como se " +"registra en niveles de registro personalizados." #: ../Doc/howto/logging.rst:469 msgid "" @@ -644,6 +870,14 @@ msgid "" "loggers with names of ``foo.bar``, ``foo.bar.baz``, and ``foo.bam`` are all " "descendants of ``foo``." msgstr "" +":func:`getLogger` retorna una referencia a una instancia de *logger* con el " +"nombre especificado si se proporciona, o ``root`` si no. Los nombres son " +"estructuras jerárquicas separadas por períodos. Múltiples llamadas a :func:" +"`getLogger` con el mismo nombre retornarán una referencia al mismo objeto " +"*logger*. Los *loggers* que están más abajo en la lista jerárquica son " +"hijos de los *loggers* que están más arriba en la lista. Por ejemplo, dado " +"un *logger* con un nombre de ``foo``, los *loggers* con nombres de ``foo." +"bar``, ``foo.bar.baz``, y ``foo.bam`` son todos descendientes de ``foo``." #: ../Doc/howto/logging.rst:477 msgid "" @@ -656,6 +890,15 @@ msgid "" "the logger is used to determine whether the event is passed to the logger's " "handlers." msgstr "" +"Los registradores tienen un concepto de *nivel efectivo*. Si un nivel no se " +"establece explícitamente en un registrador, el nivel de su clase padre se " +"utiliza en su lugar como su nivel efectivo. Si el padre no tiene un nivel " +"explícito establecido, *su* padre es examinado, y así sucesivamente - se " +"buscan todos los ancestros hasta que se encuentra un nivel explícitamente " +"establecido. El registrador raíz siempre tiene un conjunto de niveles " +"explícito (``Advertencia`` por defecto). Cuando se decide si se procesa un " +"evento, el nivel efectivo del registrador se utiliza para determinar si el " +"evento se pasa a los manejadores del registrador." #: ../Doc/howto/logging.rst:485 msgid "" @@ -666,10 +909,17 @@ msgid "" "needed. (You can, however, turn off propagation by setting the *propagate* " "attribute of a logger to ``False``.)" msgstr "" +"Los *loggers* inferiores propagan mensajes hasta los gestores asociados con " +"sus *loggers* ancestros. Debido a esto, no es necesario definir y configurar " +"los manejadores para todos los registradores que utiliza una aplicación. " +"Basta con configurar los manejadores para un registrador de nivel superior y " +"crear registradores hijos según sea necesario. (Sin embargo, puedes " +"desactivar la propagación estableciendo el atributo *propagate* de un " +"*logger* en ``False``.)" #: ../Doc/howto/logging.rst:496 msgid "Handlers" -msgstr "" +msgstr "Gestores" #: ../Doc/howto/logging.rst:498 msgid "" @@ -683,6 +933,17 @@ msgid "" "individual handlers where each handler is responsible for sending messages " "of a specific severity to a specific location." msgstr "" +"Los objetos :class:`~logging.Handler` son responsables de enviar los " +"mensajes de registro apropiados (basados en la severidad de los mensajes de " +"registro) al destino especificado por el handler. :class:`Logger` los " +"objetos pueden añadir cero o más objetos *handler* a sí mismos con un " +"método :meth:`~Logger.addHandler`. Como escenario de ejemplo, una " +"aplicación puede querer enviar todos los mensajes de registro a un archivo " +"de registro, todos los mensajes de registro de error o superiores a stdout, " +"y todos los mensajes de crítico a una dirección de correo electrónico. Este " +"escenario requiere tres manejadores individuales donde cada manejador es " +"responsable de enviar mensajes de una severidad específica a una ubicación " +"específica." #: ../Doc/howto/logging.rst:508 msgid "" @@ -690,6 +951,9 @@ msgid "" "handlers`); the tutorials use mainly :class:`StreamHandler` and :class:" "`FileHandler` in its examples." msgstr "" +"La biblioteca estándar incluye bastantes tipos de *handler* (ver :ref:" +"`useful-handlers`); los tutoriales usan principalmente :class:" +"`StreamHandler` y :class:`FileHandler` en sus ejemplos." #: ../Doc/howto/logging.rst:512 msgid "" @@ -698,6 +962,11 @@ msgid "" "application developers who are using the built-in handler objects (that is, " "not creating custom handlers) are the following configuration methods:" msgstr "" +"Hay muy pocos métodos en un manejador para que los desarrolladores de " +"aplicaciones se preocupen. Los únicos métodos de manejador que parecen " +"relevantes para los desarrolladores de aplicaciones que utilizan los objetos " +"de manejador incorporados (es decir, que no crean manejadores " +"personalizados) son los siguientes métodos de configuración:" #: ../Doc/howto/logging.rst:517 msgid "" @@ -708,18 +977,28 @@ msgid "" "level set in each handler determines which messages that handler will send " "on." msgstr "" +"El método :meth:`~Handler.setLevel`, al igual que en los objetos de " +"*logger*, especifica la menor gravedad que será enviada al destino " +"apropiado. ¿Por qué hay dos métodos :func:`setLevel`? El nivel establecido " +"en el registrador determina qué gravedad de los mensajes pasará a sus " +"manejadores. El nivel establecido en cada manejador determina qué mensajes " +"enviará ese manejador." #: ../Doc/howto/logging.rst:523 msgid "" ":meth:`~Handler.setFormatter` selects a Formatter object for this handler to " "use." msgstr "" +":meth:`~Handler.setFormatter` selecciona un objeto *Formatter* para que este " +"*handler* lo use." #: ../Doc/howto/logging.rst:526 msgid "" ":meth:`~Handler.addFilter` and :meth:`~Handler.removeFilter` respectively " "configure and deconfigure filter objects on handlers." msgstr "" +":meth:`~Handler.addFilter` y :meth:`~Handler.removeFilter` respectivamente " +"configuran y desconfiguran los objetos del filtro en los handlers." #: ../Doc/howto/logging.rst:529 msgid "" @@ -728,10 +1007,14 @@ msgid "" "the interface that all handlers should have and establishes some default " "behavior that child classes can use (or override)." msgstr "" +"El código de la aplicación no debe instanciar directamente y usar instancias " +"de :class:`Handler`. En su lugar, la clase :class:`Handler` es una clase " +"base que define la interfaz que todos los *handlers* deben tener y establece " +"algún comportamiento por defecto que las clases hijas pueden usar (o anular)." #: ../Doc/howto/logging.rst:536 msgid "Formatters" -msgstr "" +msgstr "Formateadores" #: ../Doc/howto/logging.rst:538 msgid "" @@ -742,18 +1025,30 @@ msgid "" "takes three optional arguments -- a message format string, a date format " "string and a style indicator." msgstr "" +"Los objetos de formato configuran el orden final, la estructura y el " +"contenido del mensaje de registro. A diferencia de la clase base :class:" +"`logging.Handler`, el código de la aplicación puede instanciar clases de " +"formateo, aunque probablemente podría subclasificar el formateo si su " +"aplicación necesita un comportamiento especial. El constructor toma tres " +"argumentos opcionales -- una cadena de formato de mensaje, una cadena de " +"formato de fecha y un indicador de estilo." #: ../Doc/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 "" +"Si no hay una cadena de formato de mensaje, el valor predeterminado es " +"utilizar el mensaje en bruto. Si no hay una cadena de formato de fecha, el " +"formato de fecha por defecto es:" #: ../Doc/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 "" +"con los milisegundos clavados al final. El ``style`` es uno de `%`, ‘{‘ o " +"‘$’. Si uno de estos no se especifica, entonces se usará ‘%’." #: ../Doc/howto/logging.rst:557 msgid "" @@ -764,10 +1059,17 @@ msgid "" "arguments), while if the style is '$' then the message format string should " "conform to what is expected by :meth:`string.Template.substitute`." msgstr "" +"Si el ``style`` es '%', la cadena del formato de mensaje utiliza ``" +"%()s`` estilo de sustitución de cadena; las posibles claves " +"están documentadas en :ref:`logrecord-attributes`. Si el estilo es '{', se " +"asume que la cadena del formato del mensaje es compatible con :meth:`str." +"format` (usando argumentos de palabras clave), mientras que si el estilo es " +"'$' entonces la cadena del formato del mensaje debe ajustarse a lo que se " +"espera de :meth:`string.Template.substitute`." #: ../Doc/howto/logging.rst:564 msgid "Added the ``style`` parameter." -msgstr "" +msgstr "Añadió el parámetro ``style``." #: ../Doc/howto/logging.rst:567 msgid "" @@ -775,6 +1077,9 @@ msgid "" "format, the severity of the message, and the contents of the message, in " "that order::" msgstr "" +"La siguiente cadena de formato de mensaje registrará la hora en un formato " +"legible para los humanos, la gravedad del mensaje y el contenido del " +"mensaje, en ese orden::" #: ../Doc/howto/logging.rst:573 msgid "" @@ -786,32 +1091,46 @@ msgid "" "want all logging times to be shown in GMT, set the ``converter`` attribute " "in the Formatter class (to ``time.gmtime`` for GMT display)." msgstr "" +"Los formateadores utilizan una función configurable por el usuario para " +"convertir la hora de creación de un registro en una tupla. Por defecto, se " +"utiliza :func:`time.localtime`; para cambiar esto para una instancia de " +"formateador particular, establezca el atributo ``converter`` de la instancia " +"a una función con la misma firma que :func:`time.localtime` o :func:`time." +"gmtime`. Para cambiarlo para todos los formateadores, por ejemplo si quieres " +"que todas las horas de registro se muestren en GMT, establece el atributo " +"``converter`` en la clase *Formatter* (a ``time.gmtime`` para mostrar GMT)." #: ../Doc/howto/logging.rst:583 msgid "Configuring Logging" -msgstr "" +msgstr "Configuración del registro" #: ../Doc/howto/logging.rst:587 msgid "Programmers can configure logging in three ways:" -msgstr "" +msgstr "Los programadores pueden configurar el registro en tres maneras:" #: ../Doc/howto/logging.rst:589 msgid "" "Creating loggers, handlers, and formatters explicitly using Python code that " "calls the configuration methods listed above." msgstr "" +"Creando registradores, manejadores y formateadores explícitamente usando " +"código Python que llama a los métodos de configuración listados arriba." #: ../Doc/howto/logging.rst:591 msgid "" "Creating a logging config file and reading it using the :func:`fileConfig` " "function." msgstr "" +"Creando un archivo de configuración de registro y leyéndolo usando la " +"función :func:`fileConfig`." #: ../Doc/howto/logging.rst:593 msgid "" "Creating a dictionary of configuration information and passing it to the :" "func:`dictConfig` function." msgstr "" +"Creando un diccionario de información de configuración y pasándolo a la " +"función :func:`dictConfig`." #: ../Doc/howto/logging.rst:596 msgid "" @@ -819,11 +1138,16 @@ msgid "" "config-api`. The following example configures a very simple logger, a " "console handler, and a simple formatter using Python code::" msgstr "" +"Para la documentación de referencia sobre las dos últimas opciones, vea :ref:" +"`logging-config-api`. El siguiente ejemplo configura un *logger* muy " +"simple, un manejador de consola, y un formateador simple usando código " +"Python::" #: ../Doc/howto/logging.rst:626 msgid "" "Running this module from the command line produces the following output:" msgstr "" +"Ejecutar este módulo desde la línea de comandos produce la siguiente salida:" #: ../Doc/howto/logging.rst:637 msgid "" @@ -831,15 +1155,20 @@ msgid "" "identical to those in the example listed above, with the only difference " "being the names of the objects::" msgstr "" +"El siguiente módulo de Python crea un registrador, manejador y formateador " +"casi idéntico a los del ejemplo anterior, con la única diferencia de los " +"nombres de los objetos::" #: ../Doc/howto/logging.rst:656 msgid "Here is the logging.conf file:" -msgstr "" +msgstr "Aquí está el archivo logging.conf:" #: ../Doc/howto/logging.rst:689 msgid "" "The output is nearly identical to that of the non-config-file-based example:" msgstr "" +"La salida es casi idéntica a la del ejemplo basado en un archivo no " +"configurado:" #: ../Doc/howto/logging.rst:700 msgid "" @@ -847,6 +1176,10 @@ msgid "" "Python code approach, mainly separation of configuration and code and the " "ability of noncoders to easily modify the logging properties." msgstr "" +"Se puede ver que el enfoque del archivo de configuración tiene algunas " +"ventajas sobre el enfoque del código Python, principalmente la separación de " +"la configuración y el código y la capacidad de los no codificadores de " +"modificar fácilmente las propiedades de registro." #: ../Doc/howto/logging.rst:704 msgid "" @@ -858,6 +1191,14 @@ msgid "" "configuration. Please refer to the reference documentation for more " "information, and specify ``False`` for this parameter if you wish." msgstr "" +"La función :func:`fileConfig`` toma un parámetro por defecto, " +"``disable_existing_loggers``, que por defecto es ``True`` por razones de " +"compatibilidad retroactiva. Esto puede ser o no lo que usted quiera, ya que " +"causará que cualquier registrador no existente antes de la llamada :func:" +"`fileConfig` sea desactivado a menos que ellos (o un ancestro) sean " +"nombrados explícitamente en la configuración. Por favor, consulte la " +"documentación de referencia para más información, y especifique ``False`` " +"para este parámetro si lo desea." #: ../Doc/howto/logging.rst:712 msgid "" @@ -867,6 +1208,13 @@ msgid "" "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 "" +"El diccionario pasado a :func:`dictConfig` también puede especificar un " +"valor booleano con la tecla ``disable_existing_loggers``, que si no se " +"especifica explícitamente en el diccionario también se interpreta por " +"defecto como ``True``. Esto lleva al comportamiento de deshabilitación de " +"los registradores descrito anteriormente, que puede no ser lo que usted " +"desea - en cuyo caso, proporcione a la clave explícitamente un valor de " +"``False``." #: ../Doc/howto/logging.rst:722 msgid "" @@ -878,6 +1226,14 @@ msgid "" "module ``mymodule``, where ``mypackage`` is available on the Python import " "path)." msgstr "" +"Obsérvese que los nombres de clase a los que se hace referencia en los " +"archivos de configuración deben ser relativos al módulo de registro, o bien " +"valores absolutos que puedan resolverse mediante mecanismos de importación " +"normales. Por lo tanto, puedes usar :class:`~logging.handlers." +"WatchedFileHandler` (relativo al módulo de registro) o ``mypackage.mymodule." +"MyHandler`` (para una clase definida en el paquete ``mypackage`` y el módulo " +"``mymodule``, donde ``mypackage`` está disponible en la ruta de importación " +"de Python)." #: ../Doc/howto/logging.rst:730 msgid "" @@ -893,22 +1249,40 @@ msgid "" "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 "" +"En Python 3.2, se ha introducido un nuevo medio para configurar el registro, " +"utilizando diccionarios para guardar la información de configuración. Esto " +"proporciona un superconjunto de la funcionalidad del enfoque basado en " +"archivos de configuración descrito anteriormente, y es el método de " +"configuración recomendado para nuevas aplicaciones y despliegues. Dado que " +"se utiliza un diccionario de Python para guardar información de " +"configuración, y dado que se puede rellenar ese diccionario utilizando " +"diferentes medios, se dispone de más opciones de configuración. Por ejemplo, " +"puede utilizar un archivo de configuración en formato JSON o, si tiene " +"acceso a la funcionalidad de procesamiento YAML, un archivo en formato YAML, " +"para rellenar el diccionario de configuración. O, por supuesto, puedes " +"construir el diccionario en código Python, recibirlo en forma encurtida " +"sobre un zócalo, o usar cualquier enfoque que tenga sentido para tu " +"aplicación." #: ../Doc/howto/logging.rst:742 msgid "" "Here's an example of the same configuration as above, in YAML format for the " "new dictionary-based approach:" msgstr "" +"Aquí hay un ejemplo de la misma configuración que arriba, en formato YAML " +"para el nuevo enfoque basado en el diccionario:" #: ../Doc/howto/logging.rst:766 msgid "" "For more information about logging using a dictionary, see :ref:`logging-" "config-api`." msgstr "" +"Para más información sobre el registro usando un diccionario, ver :ref:" +"`logging-config-api`." #: ../Doc/howto/logging.rst:770 msgid "What happens if no configuration is provided" -msgstr "" +msgstr "¿Qué pasa si no se proporciona ninguna configuración" #: ../Doc/howto/logging.rst:772 msgid "" @@ -917,26 +1291,38 @@ msgid "" "output the event. The behaviour of the logging package in these " "circumstances is dependent on the Python version." msgstr "" +"Si no se proporciona una configuración de registro, es posible que se " +"produzca una situación en la que sea necesario dar salida a un suceso de " +"registro, pero no se puede encontrar a ningún gestor para dar salida al " +"suceso. El comportamiento del paquete de registro en estas circunstancias " +"depende de la versión de Python." #: ../Doc/howto/logging.rst:777 msgid "For versions of Python prior to 3.2, the behaviour is as follows:" msgstr "" +"Para las versiones de Python anteriores a la 3.2, el comportamiento es el " +"siguiente:" #: ../Doc/howto/logging.rst:779 msgid "" "If *logging.raiseExceptions* is ``False`` (production mode), the event is " "silently dropped." msgstr "" +"Si *logging.raiseExceptions* es ``Falso`` (modo de producción), el evento es " +"abandonado silenciosamente." #: ../Doc/howto/logging.rst:782 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* es ``True`` (modo de desarrollo), se imprime " +"una vez un mensaje '*No handlers could be found for logger X.Y.Z*' ('No se " +"pudo encontrar ningún manejador (*handler*) para el *logger* X.Y.Z')." #: ../Doc/howto/logging.rst:785 msgid "In Python 3.2 and later, the behaviour is as follows:" -msgstr "" +msgstr "En Python 3.2 y posteriores, el comportamiento es el siguiente:" #: ../Doc/howto/logging.rst:787 msgid "" @@ -949,16 +1335,26 @@ msgid "" "handler's level is set to ``WARNING``, so all events at this and greater " "severities will be output." msgstr "" +"El evento es emitido usando un ‘handler de último recurso’, almacenado en " +"``logging.lastResort``. Este manejador interno no está asociado con ningún " +"logger, y actúa como un :class:`~logging.StreamHandler`` que escribe el " +"mensaje de descripción del evento con el valor actual de ``sys.stderr`` " +"(respetando así cualquier redireccionamiento que pueda estar en vigor). No " +"se hace ningún tipo de formateo en el mensaje, sólo se imprime el mensaje de " +"descripción del evento. El nivel del manejador se establece en ``WARNING``, " +"por lo que todos los eventos de esta y mayores severidades serán emitidos." #: ../Doc/howto/logging.rst:796 msgid "" "To obtain the pre-3.2 behaviour, ``logging.lastResort`` can be set to " "``None``." msgstr "" +"Para obtener el comportamiento anterior a la 3.2, ``logging.lastResort`` se " +"puede configurar como ``None``." #: ../Doc/howto/logging.rst:801 msgid "Configuring Logging for a Library" -msgstr "" +msgstr "Configurando Logging para una biblioteca" #: ../Doc/howto/logging.rst:803 msgid "" @@ -970,6 +1366,14 @@ msgid "" "of severity ``WARNING`` and greater will be printed to ``sys.stderr``. This " "is regarded as the best default behaviour." msgstr "" +"Cuando se desarrolla una biblioteca que utiliza el registro, se debe tener " +"cuidado de documentar la forma en que la biblioteca utiliza el registro, por " +"ejemplo, los nombres de los registradores utilizados. También hay que tener " +"en cuenta su configuración de registro. Si la aplicación que lo utiliza no " +"usa el registro, y el código de la biblioteca hace llamadas de registro, " +"entonces (como se describe en la sección anterior) los eventos de gravedad " +"``WARNING`` y mayores se imprimirán en ``sys.stderr``. Esto se considera el " +"mejor comportamiento por defecto." #: ../Doc/howto/logging.rst:811 msgid "" @@ -982,6 +1386,16 @@ msgid "" "suitably configured then logging calls made in library code will send output " "to those handlers, as normal." msgstr "" +"Si por alguna razón usted *no* quiere que estos mensajes se impriman en " +"ausencia de cualquier configuración de registro, puede adjuntar un manejador " +"de no hacer nada al registrador de nivel superior de su biblioteca. Esto " +"evita que el mensaje se imprima, ya que siempre se encontrará un manejador " +"para los eventos de la biblioteca: simplemente no produce ninguna salida. Si " +"el usuario de la biblioteca configura el registro para el uso de la " +"aplicación, presumiblemente esa configuración añadirá algunos manejadores, y " +"si los niveles están configurados adecuadamente, entonces las llamadas de " +"registro realizadas en el código de la biblioteca enviarán una salida a esos " +"manejadores, como es normal." #: ../Doc/howto/logging.rst:820 msgid "" @@ -993,6 +1407,14 @@ msgid "" "library *foo* is done using loggers with names matching 'foo.x', 'foo.x.y', " "etc. then the code::" msgstr "" +"Un manejador de no hacer nada está incluido en el paquete de registro: :" +"class:`~logging.NullHandler` (desde Python 3.1). Una instancia de este " +"manejador podría ser añadida al *logger* de nivel superior del espacio de " +"nombres de registro usado por la biblioteca (*si* quieres evitar que los " +"eventos de registro de tu biblioteca se envíen a ``sys.stderr`` en ausencia " +"de la configuración de registro). Si todo el registro de una biblioteca " +"*foo* se hace usando registradores con nombres que coincidan con 'foo.x', " +"'foo.x.y', etc. entonces el código::" #: ../Doc/howto/logging.rst:831 msgid "" @@ -1000,6 +1422,9 @@ msgid "" "libraries, then the logger name specified can be 'orgname.foo' rather than " "just 'foo'." msgstr "" +"debería tener el efecto deseado. Si una organización produce varias " +"bibliotecas, el nombre del registrador especificado puede ser ‘orgname.foo’ " +"en lugar de sólo ‘foo’." #: ../Doc/howto/logging.rst:835 msgid "" @@ -1011,10 +1436,18 @@ msgid "" "handlers 'under the hood', you might well interfere with their ability to " "carry out unit tests and deliver logs which suit their requirements." msgstr "" +"Se recomienda encarecidamente que *no añada ningún otro manejador que no " +"sea* :class:`~logging.NullHandler` *a los loggers de su biblioteca*. Esto se " +"debe a que la configuración de los *handlers* es prerrogativa del " +"desarrollador de aplicaciones que utiliza su biblioteca. El desarrollador de " +"la aplicación conoce su público objetivo y qué manejadores son los más " +"apropiados para su aplicación: si añades manejadores ‘bajo el capó’, podrías " +"interferir en su capacidad de realizar pruebas unitarias y entregar " +"registros que se ajusten a sus necesidades." #: ../Doc/howto/logging.rst:846 msgid "Logging Levels" -msgstr "" +msgstr "Niveles de registro" #: ../Doc/howto/logging.rst:848 msgid "" @@ -1024,38 +1457,43 @@ msgid "" "define a level with the same numeric value, it overwrites the predefined " "value; the predefined name is lost." msgstr "" +"Los valores numéricos de los niveles de registro se indican en el siguiente " +"cuadro. Éstos son de interés principalmente si se desea definir los propios " +"niveles y se necesita que tengan valores específicos en relación con los " +"niveles predefinidos. Si se define un nivel con el mismo valor numérico, " +"éste sobrescribe el valor predefinido; el nombre predefinido se pierde." #: ../Doc/howto/logging.rst:855 msgid "Numeric value" -msgstr "" +msgstr "Valor numérico" #: ../Doc/howto/logging.rst:857 msgid "50" -msgstr "" +msgstr "50" #: ../Doc/howto/logging.rst:859 msgid "40" -msgstr "" +msgstr "40" #: ../Doc/howto/logging.rst:861 msgid "30" -msgstr "" +msgstr "30" #: ../Doc/howto/logging.rst:863 msgid "20" -msgstr "" +msgstr "20" #: ../Doc/howto/logging.rst:865 msgid "10" -msgstr "" +msgstr "10" #: ../Doc/howto/logging.rst:867 msgid "``NOTSET``" -msgstr "" +msgstr "``NOTSET``" #: ../Doc/howto/logging.rst:867 msgid "0" -msgstr "" +msgstr "0" #: ../Doc/howto/logging.rst:870 msgid "" @@ -1066,6 +1504,13 @@ msgid "" "the method call's, no logging message is actually generated. This is the " "basic mechanism controlling the verbosity of logging output." msgstr "" +"Los niveles también pueden asociarse con los registradores, siendo " +"establecidos por el desarrollador o mediante la carga de una configuración " +"de registro guardada. Cuando se llama a un método de registro en un " +"registrador, éste compara su propio nivel con el nivel asociado a la llamada " +"del método. Si el nivel del registrador es superior al de la llamada al " +"método, no se genera ningún mensaje de registro. Este es el mecanismo básico " +"que controla la verbosidad de la salida del registro." #: ../Doc/howto/logging.rst:877 msgid "" @@ -1073,6 +1518,10 @@ msgid "" "class. When a logger decides to actually log an event, a :class:`~logging." "LogRecord` instance is created from the logging message." msgstr "" +"Los mensajes de registro se codifican como instancias de la clase :class:" +"`logging.LogRecord`. Cuando un *logger* decide registrar realmente un " +"evento, se crea una instancia :class:`~logging.LogRecord` a partir del " +"mensaje de registro." #: ../Doc/howto/logging.rst:881 msgid "" @@ -1090,6 +1539,21 @@ msgid "" "message (unless the *propagate* flag for a logger is set to a false value, " "at which point the passing to ancestor handlers stops)." msgstr "" +"Los mensajes de registro están sujetos a un mecanismo de envío mediante el " +"uso de :dfn:`handlers`, que son instancias de subclases de la clase :class:" +"`Handler`. Los gestores son responsables de asegurar que un mensaje " +"registrado (en forma de :class:`LogRecord`) termine en una ubicación " +"particular (o conjunto de ubicaciones) que sea útil para el público al que " +"va dirigido ese mensaje (como usuarios finales, personal de asistencia " +"técnica, administradores de sistemas, desarrolladores). Los manejadores " +"pasan instancias :class:`LogRecord` destinadas a destinos particulares. Cada " +"*logger* puede tener cero, uno o más manejadores asociados a él (a través " +"del método :meth:`~Logger.addHandler` de :class:`Logger`). Además de los " +"*handlers* directamente asociados a un *logger*, todos los manejadores " +"(*handlers*) asociados a todos los ancestros del *logger* son llamados a " +"enviar el mensaje (a menos que el flag *propagate* de un *logger* se " +"establezca en un valor falso, en cuyo caso el paso a los *handlers* " +"ancestrales se detiene)." #: ../Doc/howto/logging.rst:895 msgid "" @@ -1100,10 +1564,16 @@ msgid "" "defined subclasses of :class:`Handler` will need to override this :meth:" "`~Handler.emit`." msgstr "" +"Al igual que para los *logger*, los gestores pueden tener niveles asociados " +"a ellos. El nivel de un gestor actúa como un filtro de la misma manera que " +"el nivel de un *logger*. Si un manejador (*handler*) decide realmente enviar " +"un evento, el método :meth:`~Handler.emit` se utiliza para enviar el mensaje " +"a su destino. La mayoría de las subclases definidas por el usuario de :class:" +"`Handler` necesitarán anular este :meth:`~Handler.emit`." #: ../Doc/howto/logging.rst:904 msgid "Custom Levels" -msgstr "" +msgstr "Niveles personalizados" #: ../Doc/howto/logging.rst:906 msgid "" @@ -1117,26 +1587,42 @@ msgid "" "difficult for the using developer to control and/or interpret, because a " "given numeric value might mean different things for different libraries." msgstr "" +"Definir sus propios niveles es posible, pero no debería ser necesario, ya " +"que los niveles existentes se han elegido sobre la base de la experiencia " +"práctica. Sin embargo, si usted está convencido de que necesita niveles " +"personalizados, debe tener mucho cuidado al hacer esto, y es posiblemente " +"*una muy mala idea definir niveles personalizados si está desarrollando una " +"biblioteca*. Esto se debe a que si los autores de múltiples bibliotecas " +"definen sus propios niveles personalizados, existe la posibilidad de que el " +"resultado del registro de tales bibliotecas múltiples utilizadas " +"conjuntamente sea difícil de controlar y/o interpretar para el desarrollador " +"usuario, porque un valor numérico dado podría significar cosas diferentes " +"para diferentes bibliotecas." #: ../Doc/howto/logging.rst:919 msgid "Useful Handlers" -msgstr "" +msgstr "Gestores útiles" #: ../Doc/howto/logging.rst:921 msgid "" "In addition to the base :class:`Handler` class, many useful subclasses are " "provided:" msgstr "" +"Además de la base :class:`Handler` class, se proporcionan muchas subclases " +"útiles:" #: ../Doc/howto/logging.rst:924 msgid "" ":class:`StreamHandler` instances send messages to streams (file-like " "objects)." msgstr "" +":class:`StreamHandler` instancias envían mensajes a los *streams* (objetos " +"como de tipo archivo)." #: ../Doc/howto/logging.rst:927 msgid ":class:`FileHandler` instances send messages to disk files." msgstr "" +":class:`FileHandler` instancias enviar mensajes a los archivos del disco." #: ../Doc/howto/logging.rst:929 msgid "" @@ -1145,60 +1631,87 @@ msgid "" "directly. Instead, use :class:`~handlers.RotatingFileHandler` or :class:" "`~handlers.TimedRotatingFileHandler`." msgstr "" +":class:`~handlers.BaseRotatingHandler` es la clase base para los manejadores " +"(*handlers*) que rotan los archivos de registro en un punto determinado. No " +"está pensada para ser instanciada directamente. En su lugar, utilice :class:" +"`~handlers.RotatingFileHandler` o :class:`~handlers." +"TimedRotatingFileHandler`." #: ../Doc/howto/logging.rst:934 msgid "" ":class:`~handlers.RotatingFileHandler` instances send messages to disk " "files, with support for maximum log file sizes and log file rotation." msgstr "" +"Las instancias de :class:`~handlers.RotatingFileHandler` envían mensajes a " +"los archivos de disco, con soporte para el tamaño máximo de los archivos de " +"registro y la rotación de los mismos." #: ../Doc/howto/logging.rst:937 msgid "" ":class:`~handlers.TimedRotatingFileHandler` instances send messages to disk " "files, rotating the log file at certain timed intervals." msgstr "" +"Las instancias de :class:`~handlers.TimedRotatingFileHandler` envían " +"mensajes a los archivos de disco, rotando el archivo de registro a ciertos " +"intervalos de tiempo." #: ../Doc/howto/logging.rst:940 msgid "" ":class:`~handlers.SocketHandler` instances send messages to TCP/IP sockets. " "Since 3.4, Unix domain sockets are also supported." msgstr "" +"Las instancias de :class:`~handlers.SocketHandler` envían mensajes a los " +"sockets TCP/IP. Desde la versión 3.4, los sockets de dominio Unix también " +"están soportados." #: ../Doc/howto/logging.rst:943 msgid "" ":class:`~handlers.DatagramHandler` instances send messages to UDP sockets. " "Since 3.4, Unix domain sockets are also supported." msgstr "" +"Instancias de :class:`~handlers.DatagramHandler` envían mensajes a los " +"sockets UDP. Desde la versión 3.4, los sockets de dominio Unix también están " +"soportados." #: ../Doc/howto/logging.rst:946 msgid "" ":class:`~handlers.SMTPHandler` instances send messages to a designated email " "address." msgstr "" +"Las instancias de :class:`~handlers.SMTPHandler` envían mensajes a una " +"dirección de correo electrónico designada." #: ../Doc/howto/logging.rst:949 msgid "" ":class:`~handlers.SysLogHandler` instances send messages to a Unix syslog " "daemon, possibly on a remote machine." msgstr "" +"Las instancias de :class:`~handlers.SysLogHandler` envían mensajes a un " +"demonio del syslog de Unix, posiblemente en una máquina remota." #: ../Doc/howto/logging.rst:952 msgid "" ":class:`~handlers.NTEventLogHandler` instances send messages to a Windows " "NT/2000/XP event log." msgstr "" +"Las instancias de :class:`~handlers.NTEventLogHandler` envían mensajes a un " +"registro de eventos de Windows NT/2000/XP." #: ../Doc/howto/logging.rst:955 msgid "" ":class:`~handlers.MemoryHandler` instances send messages to a buffer in " "memory, which is flushed whenever specific criteria are met." msgstr "" +"Las instancias de :class:`~handlers.MemoryHandler` envían mensajes a un " +"buffer en la memoria, que es limpiado cuando se cumplen ciertos criterios." #: ../Doc/howto/logging.rst:958 msgid "" ":class:`~handlers.HTTPHandler` instances send messages to an HTTP server " "using either ``GET`` or ``POST`` semantics." msgstr "" +"Las instancias de :class:`~handlers.HTTPHandler` envían mensajes a un " +"servidor HTTP usando la semántica de \"GET\" o \"POST\"." #: ../Doc/howto/logging.rst:961 msgid "" @@ -1207,12 +1720,19 @@ msgid "" "name. This handler is only useful on Unix-like systems; Windows does not " "support the underlying mechanism used." msgstr "" +"Las instancias de :class:`~handlers.WatchedFileHandler` ven el archivo al " +"que están accediendo. Si el archivo cambia, se cierra y se vuelve a abrir " +"usando el nombre del archivo. Este manejador sólo es útil en sistemas tipo " +"Unix; Windows no soporta el mecanismo subyacente utilizado." #: ../Doc/howto/logging.rst:966 msgid "" ":class:`~handlers.QueueHandler` instances send messages to a queue, such as " "those implemented in the :mod:`queue` or :mod:`multiprocessing` modules." msgstr "" +"Las instancias de :class:`~handlers.QueueHandler` envían mensajes a una " +"cola, como los implementados en los módulos :mod:`queue` or :mod:" +"`multiprocessing`." #: ../Doc/howto/logging.rst:969 msgid "" @@ -1222,14 +1742,20 @@ msgid "" "the library user has not configured logging. See :ref:`library-config` for " "more information." msgstr "" +":class:`NullHandler` instancias no hacen nada con los mensajes de error. Son " +"utilizadas por los desarrolladores de bibliotecas que quieren utilizar el " +"registro, pero quieren evitar el mensaje \"No se pudo encontrar ningún " +"controlador para el registrador XXX\", que puede mostrarse si el usuario de " +"la biblioteca no ha configurado el registro. Vea :ref:`library-config` para " +"más información." #: ../Doc/howto/logging.rst:975 msgid "The :class:`NullHandler` class." -msgstr "" +msgstr "La clase :class:`NullHandler`." #: ../Doc/howto/logging.rst:978 msgid "The :class:`~handlers.QueueHandler` class." -msgstr "" +msgstr "La :class:`~handlers.QueueHandler` (La clase de gestores de Cola)." #: ../Doc/howto/logging.rst:981 msgid "" @@ -1238,6 +1764,11 @@ msgid "" "defined in a sub-module, :mod:`logging.handlers`. (There is also another sub-" "module, :mod:`logging.config`, for configuration functionality.)" msgstr "" +"Las clases :class:`NullHandler`, :class:`StreamHandler` y :class:" +"`FileHandler` están definidas en el paquete de registro del núcleo. Los " +"otros manejadores se definen en un sub-módulo, :mod:`logging.handlers`. " +"(También hay otro submódulo, :mod:`logging.config`, para la funcionalidad de " +"configuración)" #: ../Doc/howto/logging.rst:986 #, python-format @@ -1246,6 +1777,9 @@ msgid "" "class:`Formatter` class. They are initialized with a format string suitable " "for use with the % operator and a dictionary." msgstr "" +"Los mensajes registrados son formateados para su presentación a través de " +"instancias de la clase :class:`Formatter`. Se inicializan con una cadena de " +"formato adecuada para su uso con el operador % y un diccionario." #: ../Doc/howto/logging.rst:990 msgid "" @@ -1254,6 +1788,10 @@ msgid "" "applied to each message in the batch), there is provision for header and " "trailer format strings." msgstr "" +"Para dar formato a varios mensajes en un lote, se pueden utilizar instancias " +"de :class:`~handlers.BufferingFormatter`. Además de la cadena de formato " +"(que se aplica a cada mensaje del lote), hay una provisión para cadenas de " +"formato de cabecera y de trailer." #: ../Doc/howto/logging.rst:995 msgid "" @@ -1264,6 +1802,13 @@ msgid "" "consult all their filters for permission. If any filter returns a false " "value, the message is not processed further." msgstr "" +"Cuando el filtrado basado en el nivel de *logger* o el nivel de manejador " +"(*handler*) no es suficiente, se pueden añadir instancias de :class:`Filter` " +"tanto a :class:`Logger` como a :class:`Handler` instancias (a través de su " +"método :meth:`~Handler.addFilter`). Antes de decidir procesar un mensaje más " +"adelante, tanto los *loggers* como los manejadores (*handlers*) consultan " +"todos sus filtros para obtener permiso. Si algún filtro retorna un valor " +"falso, el mensaje no se procesa más." #: ../Doc/howto/logging.rst:1002 msgid "" @@ -1271,10 +1816,14 @@ msgid "" "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 funcionalidad básica :class:`Filtro` permite filtrar por un nombre de " +"registro específico. Si se utiliza esta función, los mensajes enviados al " +"registrador nombrado y a sus hijos se permiten a través del filtro, y todos " +"los demás se eliminan." #: ../Doc/howto/logging.rst:1010 msgid "Exceptions raised during logging" -msgstr "" +msgstr "Excepciones lanzadas durante logging" #: ../Doc/howto/logging.rst:1012 msgid "" @@ -1283,6 +1832,11 @@ msgid "" "logging events - such as logging misconfiguration, network or other similar " "errors - do not cause the application using logging to terminate prematurely." msgstr "" +"El paquete de tala está diseñado para tragarse las excepciones que se " +"producen durante la tala en la producción. Esto es así para que los errores " +"que ocurren durante el manejo de los eventos de registro - como la mala " +"configuración del registro, errores de red u otros errores similares - no " +"causen que la aplicación que utiliza el registro termine prematuramente." #: ../Doc/howto/logging.rst:1017 msgid "" @@ -1291,6 +1845,10 @@ msgid "" "method of a :class:`Handler` subclass are passed to its :meth:`~Handler." "handleError` method." msgstr "" +"Las excepciones de :class:`SystemExit` (Salida del sistema) y :class:" +"`KeyboardInterrupt` (Interrupción del teclado) nunca se tragan. Otras " +"excepciones que ocurren durante el método :meth:`~Handler.emit` de una " +"subclase :class:`Handler` se pasan a su método :meth:`~Handler.handleError` ." #: ../Doc/howto/logging.rst:1022 msgid "" @@ -1299,6 +1857,10 @@ msgid "" "is set. If set, a traceback is printed to :data:`sys.stderr`. If not set, " "the exception is swallowed." msgstr "" +"La implementación por defecto de :meth:`~Handler.handleError` en :class:" +"`Handler` comprueba si una variable de nivel de módulo, :data:" +"`raiseExceptions`, está establecida. Si se establece, se imprime una traza " +"en :data:`sys.stderr`. Si no se establece, se traga la excepción." #: ../Doc/howto/logging.rst:1027 msgid "" @@ -1307,10 +1869,14 @@ msgid "" "occur. It's advised that you set :data:`raiseExceptions` to ``False`` for " "production usage." msgstr "" +"El valor por defecto de :data:`raiseExceptions` (lanzar excepciones) es " +"``True``. Esto se debe a que durante el desarrollo, normalmente quieres ser " +"notificado de cualquier excepción que ocurra. Se aconseja que establezca :" +"data:`raiseExceptions` a ``False`` para el uso en producción." #: ../Doc/howto/logging.rst:1037 msgid "Using arbitrary objects as messages" -msgstr "" +msgstr "Usando objetos arbitrarios como mensajes" #: ../Doc/howto/logging.rst:1039 msgid "" @@ -1323,10 +1889,18 @@ msgid "" "`~handlers.SocketHandler` emits an event by pickling it and sending it over " "the wire." msgstr "" +"En las secciones y ejemplos anteriores, se ha supuesto que el mensaje pasado " +"al registrar el suceso es una cadena. Sin embargo, esta no es la única " +"posibilidad. Se puede pasar un objeto arbitrario como mensaje, y su método :" +"meth:`~object.__str__` será llamado cuando el sistema de registro necesite " +"convertirlo en una representación de cadena. De hecho, si quieres, puedes " +"evitar computar una representación de cadena por completo - por ejemplo, el " +"método :class:`~handlers.SocketHandler` emite un evento al *pickling* y " +"enviarlo por el cable." #: ../Doc/howto/logging.rst:1050 msgid "Optimization" -msgstr "" +msgstr "Optimización" #: ../Doc/howto/logging.rst:1052 msgid "" @@ -1338,12 +1912,22 @@ msgid "" "event would be created by the Logger for that level of call. You can write " "code like this::" msgstr "" +"El formato de los argumentos del mensaje se aplaza hasta que no se pueda " +"evitar. Sin embargo, el cálculo de los argumentos pasados al método de " +"registro también puede ser costoso, y puede que quieras evitar hacerlo si el " +"registrador simplemente tirará tu evento. Para decidir qué hacer, puedes " +"llamar al método :meth:`~Logger.isEnabledFor` que toma un argumento de nivel " +"y retorna true si el evento sería creado por el *Logger* para ese nivel de " +"llamada. Puedes escribir código como este::" #: ../Doc/howto/logging.rst:1064 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 modo que si el umbral del registrador se establece por encima de " +"``DEBUG``, las llamadas a :func:`expensive_func1` y :func:`expensive_func2` " +"nunca se hacen." #: ../Doc/howto/logging.rst:1067 msgid "" @@ -1356,6 +1940,16 @@ msgid "" "need to be recomputed when the logging configuration changes dynamically " "while the application is running (which is not all that common)." msgstr "" +"En algunos casos, :meth:`~Logger.isEnabledFor` puede ser en sí mismo más " +"caro de lo que te gustaría (por ejemplo, para los *loggers* profundamente " +"anidados donde un nivel explícito sólo se establece en lo alto de la " +"jerarquía de *loggers*). En estos casos (o si quieres evitar llamar a un " +"método en bucles estrechos), puedes guardar en caché el resultado de una " +"llamada a :meth:`~Logger.isEnabledFor` en una variable local o de instancia, " +"y usarla en lugar de llamar al método cada vez. Tal valor en caché sólo " +"necesitaría ser recalculado cuando la configuración de registro cambie " +"dinámicamente mientras la aplicación se está ejecutando (lo cual no es tan " +"común)." #: ../Doc/howto/logging.rst:1076 msgid "" @@ -1364,41 +1958,50 @@ msgid "" "Here's a list of things you can do to avoid processing during logging which " "you don't need:" msgstr "" +"Hay otras optimizaciones que pueden hacerse para aplicaciones específicas " +"que necesitan un control más preciso sobre la información de registro que se " +"recoge. Aquí hay una lista de cosas que puede hacer para evitar el " +"procesamiento durante el registro que no necesita:" #: ../Doc/howto/logging.rst:1082 msgid "What you don't want to collect" -msgstr "" +msgstr "Lo que no quieres colectar" #: ../Doc/howto/logging.rst:1082 msgid "How to avoid collecting it" -msgstr "" +msgstr "Cómo evitar coleccionarlo" #: ../Doc/howto/logging.rst:1084 msgid "Information about where calls were made from." -msgstr "" +msgstr "Información sobre dónde se hicieron las llamadas." #: ../Doc/howto/logging.rst:1084 +#, fuzzy 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 "" +"Ponga ``logging._srcfile`` a ``None``. Esto evita llamar a :func:`sys." +"_getframe`, lo que puede ayudar a acelerar tu código en entornos como PyPy " +"(cual no puede acelerar el código que usa :func:`sys._getframe`), siempre y " +"cuando PyPy soporte Python 3.x." #: ../Doc/howto/logging.rst:1091 msgid "Threading information." -msgstr "" +msgstr "Información sobre código con hilos." #: ../Doc/howto/logging.rst:1091 msgid "Set ``logging.logThreads`` to ``0``." -msgstr "" +msgstr "Ponga ``logging.logThreads`` en ``0``." #: ../Doc/howto/logging.rst:1093 msgid "Process information." -msgstr "" +msgstr "Procesar la información." #: ../Doc/howto/logging.rst:1093 msgid "Set ``logging.logProcesses`` to ``0``." -msgstr "" +msgstr "Ponga ``logging.logProcesses`` en ``0``." #: ../Doc/howto/logging.rst:1096 msgid "" @@ -1406,31 +2009,34 @@ msgid "" "you don't import :mod:`logging.handlers` and :mod:`logging.config`, they " "won't take up any memory." msgstr "" +"Observe también que el módulo de registro del núcleo sólo incluye los " +"gestores básicos. Si no importas :mod:`logging.handlers` y :mod:`logging." +"config`, no ocuparán ninguna memoria." #: ../Doc/howto/logging.rst:1103 msgid "Module :mod:`logging`" -msgstr "" +msgstr "Módulo :mod:`logging`" #: ../Doc/howto/logging.rst:1103 msgid "API reference for the logging module." -msgstr "" +msgstr "Referencia API para el módulo de registro." #: ../Doc/howto/logging.rst:1106 msgid "Module :mod:`logging.config`" -msgstr "" +msgstr "Módulo :mod:`logging.config`" #: ../Doc/howto/logging.rst:1106 msgid "Configuration API for the logging module." -msgstr "" +msgstr "API de configuración para el módulo de registro." #: ../Doc/howto/logging.rst:1109 msgid "Module :mod:`logging.handlers`" -msgstr "" +msgstr "Módulo :mod:`logging.handlers`" #: ../Doc/howto/logging.rst:1109 msgid "Useful handlers included with the logging module." -msgstr "" +msgstr "Gestores útiles incluidos en el módulo de registro." #: ../Doc/howto/logging.rst:1111 msgid ":ref:`A logging cookbook `" -msgstr "" +msgstr ":ref:`Un libro de recetas `" From 0f99e66162c57044f1279edc2ee6e3c4a64fec35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Sat, 20 Mar 2021 15:25:45 +0100 Subject: [PATCH 32/34] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claudia Millán --- howto/logging-cookbook.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index b0e8753604..5d7f1134d6 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -828,9 +828,9 @@ msgid "" "strings." msgstr "" "Las llamadas de Logging (``logger.debug()``, ``logger.info()``, etc.) solo " -"toman parámetros posicionales para el mensaje de registro real en sí, con " -"parámetros de palabras clave que se usan solo para determinar opciones sobre " -"cómo gestionar la llamada real a Logging (por ejemplo, el parámetro de " +"toman parámetros posicionales para el mensaje de registro real en sí, los " +"parámetros de palabras clave se usan solo para determinar opciones sobre " +"cómo gestionar la llamada propiamente a Logging (por ejemplo, el parámetro de " "palabra clave ``exc_info`` para indicar que la información de rastreo debe " "registrarse, o el parámetro de palabra clave ``extra`` para indicar " "información contextual adicional que se agregará al registro). Por lo tanto, " From 0a2989ad3a3086a82f92d105a6e61dc6832cb2f5 Mon Sep 17 00:00:00 2001 From: Cristian Maureira-Fredes Date: Sat, 20 Mar 2021 15:26:04 +0100 Subject: [PATCH 33/34] usando prioridad --- howto/logging-cookbook.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 5d7f1134d6..5222ef7904 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -118,7 +118,7 @@ msgstr "" "Los *loggers* son simples objetos Python. El método :meth:`~Logger." "addHandler` no tiene una cuota mínima o máxima para la cantidad de gestores " "(*handlers*) que puede agregar. A veces será beneficioso para una aplicación " -"registrar todos los mensajes de todas las severidades en un archivo de texto " +"registrar todos los mensajes de todas las prioridades en un archivo de texto " "mientras se registran simultáneamente los errores o más en la consola. Para " "configurar esto, simplemente configure los gestores apropiados. Las llamadas " "de registro en el código de la aplicación permanecerán sin cambios. Aquí hay " @@ -146,7 +146,7 @@ msgid "" "to happen is to modify the severity level of the logger and/or handler to " "debug." msgstr "" -"La capacidad de crear nuevos gestores con filtros de mayor o menor severidad " +"La capacidad de crear nuevos gestores con filtros de mayor o menor prioridad " "puede ser muy útil al escribir y probar una aplicación. En lugar de usar " "muchas declaraciones ``print`` para la depuración, use ``logger.debug``: a " "diferencia de las declaraciones de impresión, que tendrá que eliminar o " From 4ca7c477858f3350496b861fb3cab3321c902f32 Mon Sep 17 00:00:00 2001 From: Cristian Maureira-Fredes Date: Sat, 20 Mar 2021 15:36:09 +0100 Subject: [PATCH 34/34] Usando logging en vez de registro --- dictionaries/howto_logging-cookbook.txt | 3 +- howto/logging-cookbook.po | 199 ++++++++++++------------ 2 files changed, 101 insertions(+), 101 deletions(-) diff --git a/dictionaries/howto_logging-cookbook.txt b/dictionaries/howto_logging-cookbook.txt index 2f958624c9..470fb64e38 100644 --- a/dictionaries/howto_logging-cookbook.txt +++ b/dictionaries/howto_logging-cookbook.txt @@ -1,4 +1,5 @@ logger +loggings loggers pickle binding @@ -9,4 +10,4 @@ QueueListener SysLogHandler LogRecord bindings -LoggerAdapters \ No newline at end of file +LoggerAdapters diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 5222ef7904..9ac36a807d 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -85,7 +85,7 @@ msgid "" "example shows logging from the main (initial) thread and another thread::" msgstr "" "Realizar *logging* desde múltiples hilos (*threads*) no requiere ningún " -"esfuerzo especial. El siguiente ejemplo muestra el registro desde el hilo " +"esfuerzo especial. El siguiente ejemplo muestra el logging desde el hilo " "principal (inicial) y otro hilo::" #: ../Doc/howto/logging-cookbook.rst:132 @@ -97,7 +97,7 @@ msgid "" "This shows the logging output interspersed as one might expect. This " "approach works for more threads than shown here, of course." msgstr "" -"Esto muestra la salida de registro intercalada como cabría esperar. Por " +"Esto muestra la salida de logging intercalada como cabría esperar. Por " "supuesto, este enfoque funciona para más hilos de lo que se muestran aquí." #: ../Doc/howto/logging-cookbook.rst:158 @@ -121,7 +121,7 @@ msgstr "" "registrar todos los mensajes de todas las prioridades en un archivo de texto " "mientras se registran simultáneamente los errores o más en la consola. Para " "configurar esto, simplemente configure los gestores apropiados. Las llamadas " -"de registro en el código de la aplicación permanecerán sin cambios. Aquí hay " +"de logging en el código de la aplicación permanecerán sin cambios. Aquí hay " "una ligera modificación al ejemplo de configuración simple anterior basado " "en módulo::" @@ -168,11 +168,11 @@ msgid "" "console messages should not. Here's how you can achieve this::" msgstr "" "Supongamos que desea que la consola y un archivo tengan diferentes formatos " -"de mensaje y salida de registro para diferentes situaciones. Por ejemplo, " -"desea registrar mensajes con un nivel DEBUG y superiores en un archivo y " -"enviar mensajes con nivel INFO y superior a la consola. Además, suponga que " -"desea grabar una marca de tiempo en el archivo y no imprimirlo en la " -"consola. Puede lograr este comportamiento haciendo lo siguiente::" +"de mensaje y salida de log para diferentes situaciones. Por ejemplo, desea " +"registrar mensajes con un nivel DEBUG y superiores en un archivo y enviar " +"mensajes con nivel INFO y superior a la consola. Además, suponga que desea " +"grabar una marca de tiempo en el archivo y no imprimirlo en la consola. " +"Puede lograr este comportamiento haciendo lo siguiente::" #: ../Doc/howto/logging-cookbook.rst:247 msgid "When you run this, on the console you will see" @@ -228,7 +228,7 @@ msgid "" "blocking the thread you're logging from. This is common in Web applications, " "though of course it also occurs in other scenarios." msgstr "" -"A veces tiene que hacer que sus gestores de registro hagan su trabajo sin " +"A veces tiene que hacer que sus gestores de logging hagan su trabajo sin " "bloquear el hilo desde el que está iniciando sesión. Esto es común en las " "aplicaciones web, aunque, por supuesto, también ocurre en otros escenarios." @@ -407,10 +407,10 @@ msgid "" "logging an application, it could be hard to manage if the number of :class:" "`Logger` instances becomes effectively unbounded." msgstr "" -"A veces, desea que la salida de registro contenga información contextual " -"además de los parámetros pasados ​​a la llamada del logging. Por ejemplo, en " +"A veces, desea que la salida de logging contenga información contextual " +"además de los parámetros pasados a la llamada del logging. Por ejemplo, en " "una aplicación en red, puede ser conveniente registrar información " -"específica del cliente en el registro (por ejemplo, el nombre de usuario del " +"específica del cliente en el logging (por ejemplo, el nombre de usuario del " "cliente remoto o la dirección IP). Aunque puede usar el parámetro *extra* " "para lograr esto, no siempre es conveniente pasar la información de esta " "manera. Si bien puede resultar tentador crear instancias :class:`Logger` por " @@ -513,7 +513,7 @@ msgid "" "``some_conn_id`` prepended to the log messages." msgstr "" "Luego, cualquier evento que registre en el adaptador tendrá el valor de " -"``some_conn_id`` antepuesto a los mensajes de registro." +"``some_conn_id`` antepuesto a los mensajes de logging." #: ../Doc/howto/logging-cookbook.rst:624 msgid "Using objects other than dicts to pass contextual information" @@ -607,7 +607,7 @@ msgstr "" "procesos en Python. Si necesita hacer esto último, una forma de abordarlo es " "hacer que todos los procesos se registren en una :class:`~handlers." "SocketHandler`, y tener un proceso separado que implemente un servidor de " -"socket que lee del socket y los registros para archivar. (Si lo prefiere, " +"socket que lee del socket y los loggings para archivar. (Si lo prefiere, " "puede dedicar un hilo en uno de los procesos existentes para realizar esta " "función.) :ref:`Esta sección ` documenta este enfoque con " "más detalle e incluye un receptor socket que funciona que se puede utilizar " @@ -650,12 +650,12 @@ msgstr "" "proceso. El siguiente script de ejemplo demuestra cómo puede hacer esto; en " "el ejemplo, un proceso de escucha independiente escucha los eventos enviados " "por otros procesos y los registra de acuerdo con su propia configuración de " -"registro. Aunque el ejemplo solo demuestra una forma de hacerlo (por " -"ejemplo, es posible que desee utilizar un hilo de escucha en lugar de un " -"proceso de escucha separado; la implementación sería análoga), permite " -"configuraciones de logging completamente diferentes para el oyente y los " -"otros procesos en su aplicación. Y se puede utilizar como base para el " -"código que cumpla con sus propios requisitos específicos::" +"logging. Aunque el ejemplo solo demuestra una forma de hacerlo (por ejemplo, " +"es posible que desee utilizar un hilo de escucha en lugar de un proceso de " +"escucha separado; la implementación sería análoga), permite configuraciones " +"de logging completamente diferentes para el oyente y los otros procesos en " +"su aplicación. Y se puede utilizar como base para el código que cumpla con " +"sus propios requisitos específicos::" #: ../Doc/howto/logging-cookbook.rst:850 msgid "" @@ -677,7 +677,7 @@ msgstr "" "Esta variante muestra cómo puede, por ejemplo, aplicar la configuración para " "logging particulares: el registrador ``foo`` tiene un gestor especial que " "almacena todos los eventos en el subsistema ``foo`` en un archivo ``mplog-" -"foo.log``. Esto será utilizado por la maquinaria de registro en el proceso " +"foo.log``. Esto será utilizado por la maquinaria de logging en el proceso " "principal (aunque los eventos logging se generen en los procesos de trabajo) " "para dirigir los mensajes a los destinos apropiados." @@ -722,11 +722,11 @@ msgid "" "usage pattern, the logging package provides a :class:`~handlers." "RotatingFileHandler`::" msgstr "" -"A veces, se desea dejar que un archivo de registro crezca hasta cierto " -"tamaño y luego abra un nuevo archivo e inicie sesión en él. Es posible que " -"desee conservar una cierta cantidad de estos archivos, y cuando se hayan " -"creado tantos archivos, rote los archivos para que la cantidad de archivos y " -"el tamaño de los archivos permanezcan limitados. Para este patrón de uso, el " +"A veces, se desea dejar que un archivo de log crezca hasta cierto tamaño y " +"luego abra un nuevo archivo e inicie sesión en él. Es posible que desee " +"conservar una cierta cantidad de estos archivos, y cuando se hayan creado " +"tantos archivos, rote los archivos para que la cantidad de archivos y el " +"tamaño de los archivos permanezcan limitados. Para este patrón de uso, el " "paquete logging proporciona :class:`~handlers.RotatingFileHandler`::" #: ../Doc/howto/logging-cookbook.rst:1024 @@ -735,7 +735,7 @@ msgid "" "the application:" msgstr "" "El resultado debe ser 6 archivos separados, cada uno con parte del historial " -"de registro de la aplicación:" +"de log de la aplicación:" #: ../Doc/howto/logging-cookbook.rst:1036 msgid "" @@ -755,8 +755,8 @@ msgid "" "Obviously this example sets the log length much too small as an extreme " "example. You would want to set *maxBytes* to an appropriate value." msgstr "" -"Obviamente, este ejemplo establece la longitud del registro demasiado " -"pequeña como un ejemplo extremo. Se querrá establecer *maxBytes* en un valor " +"Obviamente, este ejemplo establece la longitud del log demasiado pequeña " +"como un ejemplo extremo. Se querrá establecer *maxBytes* en un valor " "apropiado." #: ../Doc/howto/logging-cookbook.rst:1047 @@ -806,10 +806,10 @@ msgid "" "completely independent of how an individual logging message is constructed. " "That can still use %-formatting, as shown here::" msgstr "" -"Tenga en cuenta que el formato de logging para la salida final a los " -"registros es completamente independiente de cómo se construye un mensaje de " -"registro individual. Para eso todavía puede usar el formateo \"%\", como se " -"muestra aquí:" +"Tenga en cuenta que el formato de logging para la salida final a los logs es " +"completamente independiente de cómo se construye un mensaje de logging " +"individual. Para eso todavía puede usar el formateo \"%\", como se muestra " +"aquí:" # No entiendo este bloque en inglés ni en español :P #: ../Doc/howto/logging-cookbook.rst:1097 @@ -828,18 +828,18 @@ msgid "" "strings." msgstr "" "Las llamadas de Logging (``logger.debug()``, ``logger.info()``, etc.) solo " -"toman parámetros posicionales para el mensaje de registro real en sí, los " +"toman parámetros posicionales para el mensaje de logging real en sí, los " "parámetros de palabras clave se usan solo para determinar opciones sobre " -"cómo gestionar la llamada propiamente a Logging (por ejemplo, el parámetro de " -"palabra clave ``exc_info`` para indicar que la información de rastreo debe " -"registrarse, o el parámetro de palabra clave ``extra`` para indicar " -"información contextual adicional que se agregará al registro). Por lo tanto, " -"no puede realizar llamadas de registro directamente usando la sintaxis :meth:" +"cómo gestionar la llamada propiamente a Logging (por ejemplo, el parámetro " +"de palabra clave ``exc_info`` para indicar que la información de rastreo " +"debe registrarse, o el parámetro de palabra clave ``extra`` para indicar " +"información contextual adicional que se agregará al log). Por lo tanto, no " +"puede realizar llamadas de logging directamente usando la sintaxis :meth:" "`str.format` o :class:`string.Template`, porque internamente el paquete de " -"registro usa formato % para fusionar la cadena de formato y los argumentos " -"de las variables. No habría ningún cambio en esto mientras se conserva la " +"logging usa formato % para fusionar la cadena de formato y los argumentos de " +"las variables. No habría ningún cambio en esto mientras se conserva la " "compatibilidad con versiones anteriores, ya que todas las llamadas de " -"registro que están en el código existente usarán cadenas de formato %." +"logging que están en el código existente usarán cadenas de formato %." #: ../Doc/howto/logging-cookbook.rst:1110 msgid "" @@ -850,7 +850,7 @@ msgid "" "the following two classes::" msgstr "" "Sin embargo, existe una forma en la que puede usar el formato {} - y $ - " -"para construir sus mensajes de registro individuales. Recuerde que para un " +"para construir sus mensajes de log individuales. Recuerde que para un " "mensaje puede usar un objeto arbitrario como una cadena de caracteres de " "formato de mensaje, y que el paquete logging llamará a ``str()`` en ese " "objeto para obtener la cadena de caracteres de formato real. Considere las " @@ -868,12 +868,12 @@ msgid "" msgstr "" "Cualquiera de estos puede usarse en lugar de una cadena de formato, para " "permitir que se use el formato {} - o $ - para construir la parte del " -"\"mensaje\" real que aparece en la salida del registro en lugar de " -"\"%(message)s\" o \"{message}\" o \"$message\". Es un poco difícil de " -"manejar usar los nombres de las clases siempre que quieras registrar algo, " -"pero es bastante aceptable si usas un alias como __ (doble subrayado --- no " -"confundir con _, el subrayado simple usado como sinónimo/alias para :func:" -"`gettext.gettext` o sus hermanos)." +"\"mensaje\" real que aparece en la salida del log en lugar de \"%(message)s" +"\" o \"{message}\" o \"$message\". Es un poco difícil de manejar usar los " +"nombres de las clases siempre que quieras registrar algo, pero es bastante " +"aceptable si usas un alias como __ (doble subrayado --- no confundir con _, " +"el subrayado simple usado como sinónimo/alias para :func:`gettext.gettext` o " +"sus hermanos)." #: ../Doc/howto/logging-cookbook.rst:1142 msgid "" @@ -909,11 +909,11 @@ msgstr "" "Una cosa a tener en cuenta es que no paga una penalización de rendimiento " "significativa con este enfoque: el formateo real no ocurre cuando realiza la " "llamada a logging, sino cuando (y si) el mensaje registrado está a punto de " -"ser enviado a un registro por un gestor. Entonces, lo único un poco inusual " -"que podría confundirte es que los paréntesis rodean la cadena de formato y " -"los argumentos, no solo la cadena de formato. Eso es porque la notación __ " -"es solo azúcar sintáctico para una llamada de constructor a una de las " -"clases XXXMessage." +"ser enviado a un log por un gestor. Entonces, lo único un poco inusual que " +"podría confundirte es que los paréntesis rodean la cadena de formato y los " +"argumentos, no solo la cadena de formato. Eso es porque la notación __ es " +"solo azúcar sintáctico para una llamada de constructor a una de las clases " +"XXXMessage." #: ../Doc/howto/logging-cookbook.rst:1176 msgid "" @@ -958,7 +958,7 @@ msgid "" ":meth:`Logger.makeRecord`, which is called in the normal process of logging " "an event. This invoked :class:`LogRecord` directly to create an instance." msgstr "" -":meth:`Logger.makeRecord`, que se llama en el proceso normal de registro de " +":meth:`Logger.makeRecord`, que se llama en el proceso normal de logging de " "un evento. Esto invoca :class:`LogRecord` directamente para crear una " "instancia." @@ -1090,7 +1090,7 @@ msgstr "" "involuntariamente los atributos proporcionados como estándar, no debería " "haber sorpresas. Sin embargo, debe tenerse en cuenta que cada eslabón de la " "cadena agrega una sobrecarga de tiempo de ejecución a todas las operaciones " -"de registro, y la técnica solo debe usarse cuando el uso de :class:`Filter` " +"de logging, y la técnica solo debe usarse cuando el uso de :class:`Filter` " "no proporciona el resultado deseado." #: ../Doc/howto/logging-cookbook.rst:1294 @@ -1192,7 +1192,7 @@ msgstr "" msgid "Using a rotator and namer to customize log rotation processing" msgstr "" "Usar un rotador y un nombre para personalizar el procesamiento de rotación " -"de registros" +"de log" #: ../Doc/howto/logging-cookbook.rst:1435 msgid "" @@ -1201,7 +1201,7 @@ msgid "" msgstr "" "Un ejemplo de cómo puede definir un nombre y un rotador se da en el " "siguiente fragmento, que muestra la compresión basada en zlib del archivo de " -"registro::" +"log::" #: ../Doc/howto/logging-cookbook.rst:1453 msgid "" @@ -1246,10 +1246,10 @@ msgstr "" "En el ejemplo, el proceso principal genera un proceso de escucha y algunos " "procesos de trabajo. Cada uno de los procesos principales, el oyente y los " "de trabajo tienen tres configuraciones separadas (todos los de trabajo " -"comparten la misma configuración). Podemos ver el registro en el proceso " -"principal, cómo los de trabajo inician sesión en un *QueueHandler* y cómo el " -"oyente implementa un *QueueListener*. Este último con una configuración de " -"registro más compleja, organiza el envío de eventos recibidos a través de la " +"comparten la misma configuración). Podemos ver el logging en el proceso " +"principal, cómo los de trabajo inician sesión en un QueueHandler y cómo el " +"oyente implementa un QueueListener. Este último con una configuración de " +"logging más compleja, organiza el envío de eventos recibidos a través de la " "cola a los gestores especificados en la configuración. Tenga en cuenta que " "estas configuraciones son puramente ilustrativas, pero usted debe ser capaz " "de adaptar este ejemplo a su propio escenario." @@ -1356,7 +1356,7 @@ msgstr "" "El mensaje formateado *se* codificará utilizando la codificación UTF-8 por " "``SysLogHandler``. Si sigue las reglas anteriores, debería poder producir " "mensajes compatibles con :rfc:`5424`. Si no lo hace, es posible que el " -"registro no se queje, pero sus mensajes no serán compatibles con RFC 5424 y " +"logging no se queje, pero sus mensajes no serán compatibles con RFC 5424 y " "su demonio syslog puede quejarse." #: ../Doc/howto/logging-cookbook.rst:1731 @@ -1381,9 +1381,9 @@ msgstr "" "máquina, puede haber circunstancias en las que desee generar mensajes en un " "formato estructurado que *sea* capaz de ser analizado por un programa (sin " "necesidad de expresiones regulares complejas para analizar el mensaje de " -"registro). Esto es sencillo de lograr utilizando el paquete logging. Hay " -"varias formas de lograr esto, pero el siguiente es un enfoque simple que usa " -"JSON para serializar el evento de una manera analizable por computadora:" +"log). Esto es sencillo de lograr utilizando el paquete logging. Hay varias " +"formas de lograr esto, pero el siguiente es un enfoque simple que usa JSON " +"para serializar el evento de una manera analizable por computadora:" #: ../Doc/howto/logging-cookbook.rst:1757 msgid "If the above script is run, it prints:" @@ -1426,10 +1426,10 @@ msgstr "" "Hay ocasiones en las que desea personalizar los gestores de logging de " "formas particulares, y si usa :func:`dictConfig` puede hacerlo sin " "subclases. Como ejemplo, considere que es posible que desee establecer la " -"propiedad de un archivo de registro. En POSIX, esto se hace fácilmente " -"usando :func:`shutil.chown`, pero los gestores de archivos en stdlib no " -"ofrecen soporte integrado. Puede personalizar la creación de gestores usando " -"una función simple como::" +"propiedad de un archivo de log. En POSIX, esto se hace fácilmente usando :" +"func:`shutil.chown`, pero los gestores de archivos en stdlib no ofrecen " +"soporte integrado. Puede personalizar la creación de gestores usando una " +"función simple como::" #: ../Doc/howto/logging-cookbook.rst:1837 msgid "" @@ -1533,8 +1533,8 @@ msgstr "" "versiones anteriores, permitía la especificación de ``{`` o ``$`` para " "permitir los enfoques de formato admitidos por :meth:`str.format` y :class:" "`string.Template`. Tenga en cuenta que esto rige el formato de los mensajes " -"de logging para la salida final a los registros y es completamente ortogonal " -"a cómo se construye un mensaje de registro individual." +"de logging para la salida final a los logging y es completamente ortogonal a " +"cómo se construye un mensaje de logging individual." #: ../Doc/howto/logging-cookbook.rst:1970 msgid "" @@ -1556,12 +1556,12 @@ msgstr "" "opciones sobre cómo manejar la llamada de logging (por ejemplo, el parámetro " "de palabra clave ``exc_info`` para indicar que la información de rastreo " "debe registrarse, o el parámetro de palabra clave ``extra`` para indicar " -"información contextual adicional que se agregará al registro). Por lo tanto, " -"no puede realizar llamadas de logging directamente usando la sintaxis :meth:" +"información contextual adicional que se agregará al log). Por lo tanto, no " +"puede realizar llamadas de logging directamente usando la sintaxis :meth:" "`str.format` o :class:`string.Template`, porque internamente el paquete " "logging usa formato % para fusionar la cadena de formato y los argumentos de " "las variables. No se cambiaría esto mientras se conserve la compatibilidad " -"con versiones anteriores, ya que todas las llamadas de registro que están en " +"con versiones anteriores, ya que todas las llamadas de logging que están en " "el código existente utilizarán cadenas de caracteres formato %." #: ../Doc/howto/logging-cookbook.rst:1982 @@ -1641,11 +1641,11 @@ msgid "" "following two classes::" msgstr "" "Existe otra forma, quizás más sencilla, de usar el formato {} - y $ - para " -"construir sus mensajes de registro individuales. Al iniciar sesión, recuerde " -"que puede usar cualquier objeto como una cadena de caracteres de formato de " +"construir sus mensajes de log individuales. Al iniciar sesión, recuerde que " +"puede usar cualquier objeto como una cadena de caracteres de formato de " "mensaje (:ref:`arbitrary-object-messages`) que al iniciar sesión puede usar " "un objeto arbitrario como una cadena de formato de mensaje, y que el paquete " -"de registro llamará :func:`str` en ese objeto para obtener el cadena de " +"de logging llamará :func:`str` en ese objeto para obtener el cadena de " "formato real. Considere las siguientes dos clases:" #: ../Doc/howto/logging-cookbook.rst:2038 @@ -1660,9 +1660,9 @@ msgid "" msgstr "" "Cualquiera de estos puede usarse en lugar de una cadena de formato, para " "permitir que se use el formato {} - o $ - para construir la parte del " -"\"mensaje\" real que aparece en la salida del registro formateado en lugar " -"de “%(message)s” or “{message}” or “$message”. Si le resulta un poco difícil " -"de manejar usar los nombres de las clases cada vez que desea registrar algo, " +"\"mensaje\" real que aparece en la salida del log formateado en lugar de " +"“%(message)s” or “{message}” or “$message”. Si le resulta un poco difícil de " +"manejar usar los nombres de las clases cada vez que desea registrar algo, " "puede hacerlo más tolerable si usa un alias como ``M`` o ``_`` para el " "mensaje (o quizás ``__``, si está utilizando``_`` para localización)." @@ -1692,12 +1692,12 @@ msgstr "" "Una cosa a tener en cuenta es que no paga ninguna penalización significativa " "del rendimiento con este enfoque: el formato real no se produce cuando se " "realiza la llamada logging, sino cuando (y si) el mensaje registrado está " -"realmente a punto de ser salida a un registro por un gestor. Así que lo " -"único un poco inusual con lo que podría tropezar es que los paréntesis van " -"alrededor de la cadena de caracteres de formato y los argumentos, no sólo la " -"cadena de formato. Esto se debe a que la notación __ es solo azúcar " -"sintáctico para una llamada de constructor a una de las clases " -"``XXXMessage`` mostradas anteriormente." +"realmente a punto de ser salida a un log por un gestor. Así que lo único un " +"poco inusual con lo que podría tropezar es que los paréntesis van alrededor " +"de la cadena de caracteres de formato y los argumentos, no sólo la cadena de " +"formato. Esto se debe a que la notación __ es solo azúcar sintáctico para " +"una llamada de constructor a una de las clases ``XXXMessage`` mostradas " +"anteriormente." #: ../Doc/howto/logging-cookbook.rst:2081 msgid "Configuring filters with :func:`dictConfig`" @@ -1810,7 +1810,7 @@ msgstr "" #: ../Doc/howto/logging-cookbook.rst:2221 msgid "Speaking logging messages" -msgstr "Mensajes de registro hablantes" +msgstr "Mensajes de logging hablantes" #: ../Doc/howto/logging-cookbook.rst:2223 msgid "" @@ -1828,7 +1828,7 @@ msgid "" "other handlers to be kept waiting. Here is a short example showing the " "approach, which assumes that the ``espeak`` TTS package is available::" msgstr "" -"Puede haber situaciones en las que sea deseable que los mensajes de registro " +"Puede haber situaciones en las que sea deseable que los mensajes de logging " "se presenten en un formato audible en lugar de visible. Esto es fácil de " "hacer si tiene la funcionalidad de texto a voz (*TTS* por sus siglas en " "inglés) disponible en su sistema, incluso si no tiene un *binding* Python. " @@ -1864,8 +1864,7 @@ msgstr "" #: ../Doc/howto/logging-cookbook.rst:2275 msgid "Buffering logging messages and outputting them conditionally" -msgstr "" -"Almacenamiento en búfer de mensajes de registro y su salida condicional" +msgstr "Almacenamiento en búfer de mensajes de logging y su salida condicional" #: ../Doc/howto/logging-cookbook.rst:2277 msgid "" @@ -1880,8 +1879,8 @@ msgstr "" "temporal y solo mostrarlos si se produce una determinada condición. Por " "ejemplo, es posible que desee comenzar a registrar eventos de depuración en " "una función, y si la función se completa sin errores, no desea saturar el " -"registro con la información de depuración recopilada; pero si hay un error, " -"desea toda la información de depuración información así como el error." +"log con la información de depuración recopilada; pero si hay un error, desea " +"toda la información de depuración información así como el error." #: ../Doc/howto/logging-cookbook.rst:2284 msgid "" @@ -1896,7 +1895,7 @@ msgid "" "subclass of ``MemoryHandler`` if you want custom flushing behavior." msgstr "" "Aquí hay un ejemplo que muestra cómo puede hacer esto usando un decorador " -"para sus funciones donde desea que el registro se comporte de esta manera. " +"para sus funciones donde desea que el logging se comporte de esta manera. " "Hace uso de :class:`logging.handlers.MemoryHandler`, que permite el " "almacenamiento en búfer de eventos registrados hasta que se produzca alguna " "condición, momento en el que los eventos almacenados en búfer se ``flushed`` " @@ -1915,7 +1914,7 @@ msgid "" "levels - otherwise, it only logs at DEBUG, INFO and WARNING levels." msgstr "" "El script de ejemplo tiene una función simple, ``foo``, que recorre todos " -"los niveles de registro, escribiendo en ``sys.stderr`` para decir en qué " +"los niveles de logging, escribiendo en ``sys.stderr`` para decir en qué " "nivel está a punto de *loguear* y luego registrar un mensaje en ese nivel. " "Puede pasar un parámetro a ``foo`` que, si es verdadero, se registrará en " "los niveles ERROR y CRITICAL; de lo contrario, solo registrará en los " @@ -2018,7 +2017,7 @@ msgstr "" "administrador de contexto es la forma más obvia de guardar y restaurar el " "contexto de logging. Aquí hay un ejemplo simple de un administrador de " "contexto de este tipo, que le permite cambiar opcionalmente el nivel de " -"registro y agregar un gestor de registro exclusivamente en el alcance del " +"logging y agregar un gestor de logging exclusivamente en el alcance del " "administrador de contexto::" #: ../Doc/howto/logging-cookbook.rst:2518 @@ -2168,8 +2167,8 @@ msgid "" "If we run this application with the default log level, we get output like " "this:" msgstr "" -"Si ejecutamos esta aplicación con el nivel de registro predeterminado, " -"obtenemos un resultado como este:" +"Si ejecutamos esta aplicación con el nivel de log predeterminado, obtenemos " +"un resultado como este:" #: ../Doc/howto/logging-cookbook.rst:2717 msgid "" @@ -2185,7 +2184,7 @@ msgid "" "the log. For example, if we want more information:" msgstr "" "Si cambiamos el nivel de logging, podemos cambiar la información enviada al " -"registro. Por ejemplo, si queremos más información:" +"log. Por ejemplo, si queremos más información:" #: ../Doc/howto/logging-cookbook.rst:2737 msgid "And if we want less:" @@ -2230,7 +2229,7 @@ msgstr "" "ser un slot en el hilo principal que realiza actualizaciones de la GUI. " "También se crea un hilo de trabajo para mostrar cómo puede iniciar sesión en " "la GUI tanto desde la propia interfaz de usuario (a través de un botón para " -"el registro manual) como desde un hilo de trabajo que trabaja en segundo " +"el logging manual) como desde un hilo de trabajo que trabaja en segundo " "plano (aquí, simplemente registrando mensajes en niveles aleatorios con " "aleatorio breves retrasos intermedios)."