¿Alguien tiene un ejemplo de iniciar sesión en python con 2 o más archivos de registro diferentes?registro de python en varios archivos
que desea registrar, por ejemplo, a '/tmp/foo.log' y '/tmp/bar.log'
Gracias de antemano
T
¿Alguien tiene un ejemplo de iniciar sesión en python con 2 o más archivos de registro diferentes?registro de python en varios archivos
que desea registrar, por ejemplo, a '/tmp/foo.log' y '/tmp/bar.log'
Gracias de antemano
T
He aquí un ejemplo:
import logging
logger1 = logging.getLogger('1')
logger1.addHandler(logging.FileHandler('/tmp/logger1'))
logger2 = logging.getLogger('2')
logger2.addHandler(logging.FileHandler('/tmp/logger2'))
logger1.error('1')
logger2.error('2')
Entonces,
$ cat /tmp/logger1
1
$ cat /tmp/logger2
2
Aquí hay un ejemplo de trabajo completo basado en el ejemplo en logging.html. El principal 'gotcha' a tener en cuenta es que debe asegurarse de establecer el nivel de registro para que el registrador de raíz interactúe correctamente con los archivos.
import logging
logging.getLogger('').setLevel(logging.DEBUG)
def create_log_file(filename, level=logging.INFO):
handler = logging.FileHandler(filename)
handler.setLevel(level)
formatter = logging.Formatter('%(asctime)s %(name)-12s %(levelname)-8s %(message)s')
handler.setFormatter(formatter)
logging.getLogger('').addHandler(handler)
create_log_file('/temp/log1.log', logging.DEBUG)
create_log_file('/temp/log2.log', logging.INFO)
# Now, we can log to the root logger, or any other logger. First the root...
logging.info('Jackdaws love my big sphinx of quartz.')
# Now, define a couple of other loggers which might represent areas in your
# application:
logger1 = logging.getLogger('myapp.area1')
logger2 = logging.getLogger('myapp.area2')
logger1.debug('Quick zephyrs blow, vexing daft Jim.')
logger1.info('How quickly daft jumping zebras vex.')
logger2.warning('Jail zesty vixen who grabbed pay from quack.')
logger2.error('The five boxing wizards jump quickly.')
pero en este ejemplo, todos los mensajes raíz aparecerán en log1.log y log2.log también? – Hein
eso es porque es solo un ejemplo. Si lo desea, puede adjuntar los controladores a un registrador diferente. – Duncan
Por qué atacas esta publicación, acabo de pedir un ejemplo y la publicación de Duncan me ayudó mucho mejor que la documentación. Así que gracias Duncan por tu ayuda. Pero 1 pregunta más, ¿es posible poner en cada registrador una rotación? – Hein