Я пытаюсь найти кого-то умнее меня, чтобы проверить синтаксис, который я написал. Идея состоит в том, чтобы настроить имя файла моего 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?
Очень ценится!