Шаблон команды звучит нормально. Это особенно позволяет передать регистратор команде и позволить команде выполнить операцию регистрации на регистраторе. Таким образом, вы можете позаботиться о каждом действии для форматирования самого журнала, и если некоторые действия не должны регистрироваться или требовать специальной информации, вам не нужно знать об этом всю архитектуру.
Недостатком является связывание действий с регистратором. Если вы хотите предотвратить это, вы можете назначить каждому действию метод, который возвращает строку журнала, которая должна быть добавлена.
Если у вас будет много разных действий, я не думаю, что это излишне, если это всего лишь действия с базой данных, и вы можете заставить каркас базы данных выполнять действия при каждом действии базы данных, возможно, изобретается колесо механизм регистрации, но, как отмечает marcgg, это зависит от вашей архитектуры.