elhor maneira de definir dinamicamente um caminho de arquivo do append
Estou tentando encontrar alguém mais inteligente que eu para validar alguma sintaxe que escrevi. A ideia é configurar o nome do arquivo do meu RollingFileAppender com o nome do assembly para torná-lo mais reutilizável para meus projeto
Eu tenho vistoEste artigo anterior do SO mas não foi exatamente capaz de responder à minha pergunta ...
Eu passei um tempão tentando entender os componentes internos do Log4net e foi isso que eu criei (residindo no arquivo Global.asax - método 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();
}
}
Alguém pode me dizer 'isso é horrível' ou 'isso deve funcionar bem'? Além disso, se eu definir o arquivo dinamicamente, ainda posso esperar que o comportamento do log4net gire os arquivos com base nas configurações do arquivo log4net.config?
Muito apreciado