name logger ejemplo c# log4net

c# - logger - log4net xmlconfigurator



¿Por qué no se reconoce log4net en el archivo de configuración? (3)

Escribí una aplicación de consola de prueba en C # usando log4net :

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using log4net; using log4net.Config; [assembly: log4net.Config.XmlConfigurator(Watch = true)] namespace Log4Net_Test { class Program { private static readonly ILog log = LogManager.GetLogger(typeof(Program)); static void Main(string[] args) { log.Info("Entering application"); log.Debug("Debug message"); log.Info("Leaving application"); } } }

Mi archivo App.config ve así:

<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <appSettings> <add key="log4net.Internal.Debug" value="true"/> </appSettings> <log4net> <!-- A1 is set to be a ConsoleAppender --> <appender name="A1" type="log4net.Appender.FileAppender"> <file value="logfile.txt" /> <appendToFile value="false" /> <!-- A1 uses PatternLayout --> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%-4timestamp [%thread] %-5level %logger %ndc - %message%newline" /> </layout> </appender> <!-- Set root logger level to DEBUG and its only appender to A1 --> <root> <level value="DEBUG" /> <appender-ref ref="A1" /> </root> </log4net> </configuration>

La ejecución del programa de prueba termina en el siguiente mensaje de error:

log4net:ERROR Exception while reading ConfigurationSettings. Check your .config file is well formed XML. System.Configuration.ConfigurationErrorsException: Configuration system failed t o initialize ---> System.Configuration.ConfigurationErrorsException: Unrecognize d configuration section log4net.

¿Qué está mal con mi archivo de configuración?

ACTUALIZACIÓN 1: configSections´ part was missing, as pointed out in the accepted answer. But I also had to remove the configSections´ part was missing, as pointed out in the accepted answer. But I also had to remove the section, otherwise the same error appeared. I do not know why the inicio section, otherwise the same error appeared. I do not know why the section, otherwise the same error appeared. I do not know why the sección de inicio también está causando el problema. Quizás alguien más experimentado pueda contar y escribir un comentario.


La sección de inicio también debía eliminarse porque log4net no es compatible con Framework .NET4.5

Puede ver mi respuesta similar aquí: https://.com/a/13236410/1783224

O puede ver los marcos admitidos en la documentación: http://logging.apache.org/log4net/release/features.html


Necesitas agregar log4net también en el bloque de sección.

<configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> </configSections>


También debe recordar que el bloque de sección < configSections > debe estar bajo la < configuración > de lo contrario, se producirá un error:

Excepción al leer los ajustes de configuración. Compruebe que su archivo .config está bien formado XML.

Por ejemplo:

<configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> <!-- Log4net Logging Setup --> <log4net> <appender name="FileAppender" type="log4net.Appender.FileAppender,log4net"> <file value="service.log" /> <appendToFile value="true" /> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> <!-- <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %level %logger - %message%newline" /> </layout> --> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%date [%thread] %-5level %logger.%method - %message%newline" /> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="INFO" /> <levelMax value="FATAL" /> </filter> </appender> <root> <level value="DEBUG" /> <appender-ref ref="FileAppender" /> </root> </log4net> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> </startup> </configuration>