Gortok,
Это типичный способ обработки журналов. Однако я имею в виду что-то другое, и я думаю, что я не был достаточно ясен в своем вопросе.
Вот гипотетический пример: у нас есть веб-приложение, в котором есть несколько страниц администратора и несколько страниц клиентов, и мы хотим иметь два разных файла admin.log и customer.log для каждого набора страниц. Оба набора страниц используют бизнес-уровень (включая CustomerService, OrderService и т. Д.) И уровень репозитория CustomerRepository, OrderRepository и т. Д.). Все слои и классы в приложении используются на обоих наборах страниц, но мы хотим, чтобы журнал был отдельным. Это облегчает ситуацию, когда на страницах администратора происходит исключение, и вы просматриваете журнал, который важен для отслеживания проблемы. Упомянутое вами решение, которое является типичным способом регистрации вещей, не охватывает эту ситуацию, потому что при использовании typeof (MyApp) (MyApp - это имя класса или пространства имен) не будет указывать, какой аппендер использовать на какой странице пользователь инициировал свой запрос.
Возможно, один из способов справиться с этой ситуацией - использовать объект значения домена в приложении и установить его значение для соответствующего регистратора, когда запрос инициируется пользователем на уровне пользовательского интерфейса, и использовать это значение в качестве параметра конструктора, когда вы определяете свой регистратор в каждом классе. Но мне интересно, есть ли лучший способ справиться с этим подходом в log4net, о котором я не знаю.
Теперь мой вопрос яснее?