Инкапсуляция сообщения журнала - PullRequest
0 голосов
/ 04 мая 2011

Я ищу эффективный и общий дизайн, который инкапсулирует сообщение журнала.
Я часто нахожу себя пишущим один и тот же logger.XXXFormat() много раз, и я хотел бы инкапсулировать эти сообщения в объекты.
Что я 'Я думаю, что я должен использовать logMessage.ToString() для извлечения сообщения журнала из объекта, но как я могу инкапсулировать само форматирование в общем виде, чтобы при получении объекта типа T он извлекал соответствующие данные и форматировал сообщение?

1 Ответ

2 голосов
/ 15 июня 2011

Вы говорите, что часто регистрируете какую-то отформатированную строку, созданную из внутренних частей экземпляра объекта?Например, у вас есть этот Address тип, и вы всегда делаете ...

Log.InfoFormat("{0}; {1}, {2} {3}", address.Line1, address.City, address.State, address.Zip);

Если так, то у меня есть две рекомендации.

Mimeo

У моего друга Джона Нельсона (AKA John Coder) есть библиотека для взятия "трафаретов" и заполнения их экземплярами объектов.

FubuCore Stringifier и IDisplayFormatter

Гении проекта FubuMVC выпустили свои основные проекты отдельно.Они постоянно занимаются форматированием и печатью объектов.Проверьте их классы.

...