2011-07-25 21 views
5
patrón

Mi conversión log4net se parece a esto¿Qué patrón log4net prevé nombre del archivo sin la ruta completa

<conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" /> 

El archivo% escupe la ruta completa que abarca casi una línea completa en mi ventana de la consola.

¿Cómo puedo obtener solo el nombre del archivo (menos la ruta)?

En este momento se ve así

INFO [10] <c:\My Root Dir\Subdir\...........................\filename.cs> - My message 

quiero que se vea como

INFO [10] <filename.cs> - My message 

gracias

Respuesta

2

Usted puede escribir su propio convertidor de diseño patrón, tal como esto:

public class FileNamePatternConverter : PatternLayoutConverter 
{  
    override protected void Convert(TextWriter writer, LoggingEvent loggingEvent) 
    { 
     writer.Write(Path.GetFileName(loggingEvent.LocationInformation.FileName)); 
    } 
} 

A continuación se configuran de la siguiente manera:

<conversionPattern value="%5level [%thread] (%filename:%line) - %message%newline"" /> 
    <converter> 
    <name value="filename" /> 
    <type value="YourNamespace.FileNamePatternConverter" /> 
</converter> 
+0

enfriar Stefan. Gracias – Gullu

1

No se olvide de estas declaraciones usando:

using log4net.Layout.Pattern; 
using log4net.Core; 
Cuestiones relacionadas