Я работаю через Logging HOWTO , ведение документации и tomordonez / ведение журнала , чтобы получить представление о системе ведения журнала.Когда я добавляю запись в класс, информация о регистрации не отображается для MyClass.__init__()
, но отображается для MyClass.obj_name()
.Это почему?
Как включить имя класса с информацией funcName
в выходной файл журнала?Документы и другие вопросы, которые я прочитал, выглядели так, как будто мне нужно написать собственный форматтер?Или что-то типа того?Есть ли не сайты docs.python.org с подробными пошаговыми инструкциями, что-то среднее между основными и продвинутыми?Спасибо!
import logging
logger = logging.getLogger('application')
logger.setLevel(logging.DEBUG)
# # create file handler which logs debug messages
# fh = logging.FileHandler('output.log.txt')
# fh.setLevel(logging.DEBUG)
# # create console handler which logs debug messages
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(name)s %(funcName)s - %(levelname)s - %(message)s')
# fh.setFormatter(formatter)
ch.setFormatter(formatter)
# # add handlers to logger
# logger.addHandler(fh)
logger.addHandler(ch)
class MyClass():
def init():
logger.info('creating an instance of MyClass object')
def obj_name(self):
logger.info('declare name')
def main():
myobj = MyClass()
# print(dir(myobj))
myobj.obj_name()
if __name__ == "__main__":
main()
Полный вывод:
PS D:\0_program_dev>'C:\Python\Python37\python.exe' 'd:\0_program_dev\hands_of_ada_book_generator\logging_tools.py'
application obj_name - INFO - declare name
PS D:\0_program_dev>