Estamos utilizando Log4Net desde nuestra aplicación ASP.NET MVC3, todo funciona bien pero nos gustaría ver el nombre de usuario actual en lugar del grupo de aplicaciones en el registro archivos, esta es la configuración appender estamos utilizando:Cómo obtener el nombre de usuario actual en lugar de la identidad de AppPool en un archivo de registro con Log4Net
<log4net>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<threshold value="ALL" />
<immediateFlush>true</immediateFlush>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<encoding value="utf-8" />
<file value="C:\Logs\MyLogs.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<maxSizeRollBackups value="30" />
<maximumFileSize value="25MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%property{log4net:HostName}] - %username%newline%utcdate - %-5level - %message%newline" />
</layout>
</appender>
<root>
<priority value="ALL" />
<appender-ref ref="FileAppender" />
</root>
</log4net>
Así que parece que la propiedad: %username
está recuperando el valor de:
WindowsIdentity.GetCurrent().Name
En lugar de lo que sería necesario: HttpContext.Current.User
¿Alguna idea de cómo podemos resolver esto fácilmente en el web.config sin crear propiedades personalizadas o clases adicionales derivadas de log4net? Si es posible, de lo contrario, si la propiedad personalizada es la única forma en que podemos vivir con eso, supongo :) ¡gracias!
Usted puede conseguir esto a través de un patrón appender en Log4net versión 1.2.11. Ver http://stackoverflow.com/a/26277219/203371 –