2009-06-23 28 views
18

Tenemos una aplicación ASP .Net cual, usamos Log4net para registrar los detalles dentro de la aplicación - nada nuevo - y los nombres de archivo de registro de rodadura están en el formato habitual de:Nombre de archivo personalizado en un archivo de registro Log4Net continuo?

rolling-log.txt 
rolling-log.txt.1 
rolling-log.txt.2 etc. 

A cada usuario de la aplicación añade para el archivo de registro, el archivo de registro puede ser difícil de leer para el caso de un usuario específico y, por lo tanto, nos gustaría modificar el archivo de configuración de alguna manera para registrar los detalles de registro del usuario individualmente, cada escritura en un archivo específico, por ejemplo

<applicationId>rolling-log.txt 
<applicationId>rolling-log.txt.1 
<applicationId>rolling-log.txt.2 
etc. 

donde está el Id de aplicación único de cada usuario, compuesto por un número de cinco dígitos, p. Ej.

12345rolling-log.txt 

Cualquier ideas sobre la mejor manera de implementar esto, asumiendo que es posible?

Saludos

Brett

Respuesta

14

look para log4net Propiedades de contexto ...

en el código:

log4net.GlobalContext.Properties["id"] = "12345"; 

continuación

log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo("configPath")); 

en el archivo de configuración de log4net:

<file type="log4net.Util.PatternString" 
      value="%property{id}rolling-log.txt" /> 
1

no creo que ese archivo de registro por usuario es posible, pero se puede escribir capa personalizada entre log4net y su aplicación que antepone identificador de usuario antes de escribir para iniciar la sesión.

1

Puede escribir un diseño personalizado heredando de XmlLayoutBase.

8

Creo que el archivo de configuración de Log4Net admite variables de entorno (por ejemplo, USERNAME), así como patrones personalizables que deberían proporcionarle lo que desea.

Consulte "PatternString para la configuración basada en patrones" en the Log4Net V1.2.10 release notes.

+0

1 Esta es la manera de hacerlo. –

34
<file type="log4net.Util.PatternString"> 
    <conversionPattern value="C:\Logs\log-%date{ yyyy.MM.dd.HH.mm.ss}-[%processid].log" /> 
</file> 

from here

+0

muy útil, votada. – Roylee

+1

N.B. Reemplace el elemento '' con lo anterior. –

+0

muchas gracias, hasta usted – Zaragon

Cuestiones relacionadas