Я пытаюсь найти кого-то умнее меня, чтобы проверить некоторый синтаксис, который я написал. Идея состоит в том, чтобы настроить имя файла моего RollingFileAppender на имя сборки, чтобы сделать его более пригодным для повторного использования для моих проектов.
Я видел эту предыдущую статью SO, но не смог ответить на мой вопрос...
У меня было время от времени, пытаясь понять внутренние компоненты Log4net, и это то, что я придумал (находясь в файле Global.asax - Application_Start):
// Bind to the root hierarchy of log4net
log4net.Repository.Hierarchy.Hierarchy root =
log4net.LogManager.GetRepository()
as log4net.Repository.Hierarchy.Hierarchy;
if (root != null)
{
// Bind to the RollingFileAppender
log4net.Appender.RollingFileAppender rfa =
(log4net.Appender.RollingFileAppender)root.Root.GetAppender("RollingLogFileAppender");
if (rfa != null)
{
// Set the file name based on the assembly name
string filePath =
string.Format("~/App_Data/{0}.log", GetType().Assembly.GetName().Name);
// Assign the value to the appender
rfa.File = Server.MapPath(filePath);
// Apply changes to the appender
rfa.ActivateOptions();
}
}
Может ли кто-нибудь сказать мне, "это отвратительно", или "это должно работать нормально"? Кроме того, если я настрою файл динамически, могу ли я ожидать, что поведение log4net будет вращать файлы на основе параметров файла log4net.config?
Очень ценно!