В настоящее время мой код регистрирует два типа событий. Связанные с классом и не связанные с классом вещи.
Следовательно, у меня есть две функции, которые выводят информацию. Один за пределами класса и один внутри, потому что я хочу автоматически регистрировать атрибуты класса в каждом журнале без необходимости указывать их для каждой print()
строки и просто передавать текст, который я хочу записать / распечатать, в функцию.
import datetime
def logging_andy(strng):
print(datetime.datetime.now(), "---", strng)
class testClass():
def __init__(self, id, name):
self.id = id
self.name = name
def logging_andy(self, strng):
print(datetime.datetime.now(), "--- ID:", self.id, "/ Name:", "'" + self.name + "'", "---", strng)
test1 = testClass(123, "Test Class 1")
test1.logging_andy("This is a test log")
test2 = testClass(456, "Test Class 2")
test2.logging_andy("This is a test log")
logging_andy("This is a log unrelated to the testClass")
OUTPUT:
2020-08-06 19:15:03.747040 --- ID: 123 / Name: 'Test Class 1' --- This is a test log
2020-08-06 19:15:03.748040 --- ID: 456 / Name: 'Test Class 2' --- This is a test log
2020-08-06 19:15:03.748040 --- This is a log unrelated to the testClass
Я думаю, что мне было бы полезно вести правильное ведение журнала, но, поскольку я никогда не использовал его, я не могу понять, как это должно быть установлено внутри класса, чтобы с каждым сообщением я получал атрибуты, связанные с классом но подоконник, чтобы иметь возможность вести журнал "вне" класса.
ЧТО Я ПЫТАЛ:
Я нашел это https://docs.python.org/2/howto/logging-cookbook.html#using -filters-to- impart-contextual-information , но возникли две проблемы:
- Мне не удалось воспроизвести два типа ведения журнала, которые есть в моем примере (один атрибут класса ведения журнала и один просто текст, не связанный с классом )
- А также в приведенном примере не регистрируется то, что на странице написано, по крайней мере, для меня
Мой результат:
2020-08-06 19:20:24 - a.b.c - DEBUG A debug message
2020-08-06 19:20:24 - a.b.c - INFO An info message with some parameters
2020-08-06 19:20:24 - d.e.f - CRITICAL A message at CRITICAL level with 2 parameters
2020-08-06 19:20:24 - d.e.f - DEBUG A message at DEBUG level with 2 parameters
2020-08-06 19:20:24 - d.e.f - WARNING A message at WARNING level with 2 parameters
2020-08-06 19:20:24 - d.e.f - INFO A message at INFO level with 2 parameters
2020-08-06 19:20:24 - d.e.f - WARNING A message at WARNING level with 2 parameters
2020-08-06 19:20:24 - d.e.f - CRITICAL A message at CRITICAL level with 2 parameters
2020-08-06 19:20:24 - d.e.f - INFO A message at INFO level with 2 parameters
2020-08-06 19:20:24 - d.e.f - DEBUG A message at DEBUG level with 2 parameters
2020-08-06 19:20:24 - d.e.f - INFO A message at INFO level with 2 parameters
2020-08-06 19:20:24 - d.e.f - CRITICAL A message at CRITICAL level with 2 parameters
Пример вывода предоставлено по ссылке:
* 102 8 *