visual studio paso ejemplo .net logging log4net

.net - studio - Configurando log4net con archivo xml



log4net levels (2)

Cuando tenga la configuración de log4net en un archivo de configuración independiente, no debe incluir los elementos de configuración y configuración. log4net debe ser el elemento de nivel superior después de la declaración xml.

Intenté configurar log4net para registrar todo en la salida de la consola. Tengo un archivo de configuración llamado Log4Net.config

<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" > <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" /> </layout> </appender> <root> <level value="INFO" /> <appender-ref ref="ConsoleAppender" /> </root> </log4net> </configuration>

y tengo mi clase principal (solo un caso de prueba)

namespace TestLog4Net { class Program { private static readonly ILog log = LogManager.GetLogger(typeof(Program)); static void Main(string[] args) { log.Info("Info"); log.Error("Error"); Console.ReadKey(); } } }

Agregué estas líneas a la AssemblyInfo.cs

[assembly: log4net.Config.XmlConfigurator( ConfigFile = "Log4Net.config", Watch = true)]

Pero ahora no se registra nada, ¿alguien puede explicar esto?


Intente esta configuración personalizada a través del código. Trabajó para mí y probado en múltiples aplicaciones.

string logFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "//Config//Log4Net.config"); FileInfo finfo = new FileInfo(logFilePath); log4net.Config.XmlConfigurator.ConfigureAndWatch(finfo);

Entiendo que es una respuesta muy tardía. Pero será útil para algún derecho.