Я подумываю о том, где записать запись журнала вокруг операции. Вот два разных стиля. Первый, запишите журнал перед операцией.Запись журнала до или после операции?
До:
log.info("Perform operation XXX")
operation()
А вот другой стиль, записи журнала после операции.
После:
operation()
log.info("Operation XXX is done.")
С до того, стиля, каротажные записи говорят, что теперь будет делать. Про этот стиль заключается в том, что когда что-то пойдет не так, разработчик может легко его обнаружить, потому что они знают, что делает программа сейчас. Но con заключается в том, что вы не уверены, что операция закончена правильно, если что-то не так внутри операции, например, вызов функции блокируется и никогда не возвращается, вы не можете этого знать, читая записи ведения журнала. После завершения стиля вы уверены, что операция выполнена.
Конечно, мы можем смешать эти два стиля вместе
Оба:
log.info("Perform operation XXX")
operation()
log.info("Operation XXX is done.")
Но я чувствую, что это своего рода многословен, он делает двойной записи протоколирования. Итак, вот мой вопрос: какой хороший стиль ведения журнала? Я хотел бы знать, как вы думаете.
Спасибо.
Я предлагаю не делать этого. Что делать, если вы хотите добавить журнал в 'operation()'? Кроме того, 'print' добавляет новую строку. Я знаю, что это просто псевдокод, но это будет непросто реализовать с любой библиотекой протоколирования. – Falmarri
Это правда, вы наверняка столкнетесь с проблемами гнездования. Что касается 'print', AIUI добавляет запятую в конец, подавляет новую строку. – Jander