Quando eu registro um evento com logging.info
, ele não aparece no terminal Python.
import logging
logging.info('I am info') # no output
Em contraste, os eventos registrados com logging.warn
do aparecem no terminal.
import logging
logging.warn('I am warning') # outputs "I am warning"
Posso fazer uma alteração no nível do ambiente para logging.info
imprimir no console? Quero evitar fazer alterações em cada arquivo Python.
getLogger()
, ele retorna o logger root. Contanto que você não modifique os outros loggers, você só precisa modificar o logger root.Python 3.5.2 (default, Nov 12 2018, 13:43:14)
[GCC 5.4.0 20160609] on linux
>>> import logging
>>> rootLog = logging.getLogger()
>>> rootLog.setLevel(logging.INFO)
>>> rootLog.info('all the kings horses')
>>> rootLog.warning('all the kings men')
all the kings men
Como @ztyx disse que o nível padrão do logger é WARNING. Você deve configurá-lo para um nível inferior
Você pode fazer isso usando logging.basicConfig e definindo o nível do logger :
fonte
basicConfig()
que não funciona para mim, emboralogging.getLogger().setLevel()
funcione adequadamente?As soluções acima não funcionaram para mim, mas o código aqui funcionou:
# set up logging to file logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s', datefmt='%m-%d %H:%M', filename='/temp/myapp.log', filemode='w') # define a Handler which writes INFO messages or higher to the sys.stderr console = logging.StreamHandler() console.setLevel(logging.INFO) # add the handler to the root logger logging.getLogger('').addHandler(console)
(Omiti partes do código por uma questão de legibilidade)
fonte
logging.error("Connection timed out!")
e mesmo comlevel=logging.DEBUG
nobasicConfig()
, não imprimiria no console. Adicionando o manipulador fez, muito obrigado !!basicConfig
ou defini-lo acima de INFO, o logger do console nunca registrará nada. Se eu sairbasicConfig
, posso ligarsetLevel
para um registrador o dia todo (e posso ver a mudança de nível ligandogetEffectiveLevel
), mas ele nunca registrará nada abaixo doWARNING
nível. Não tenho certeza se esse não é o comportamento correto, mas não é o que eu esperava.