Extrae la configuración de log4net a un archivo independiente log4net.config, separado de web.config; carga la configuración de forma automática mediante un atributo de ensamblado.
1 Crear log4net.config
Colócalo en el directorio raíz del sitio web
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<!--Guardar registros en archivo txt-->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--Ruta raíz de logs: raíz sitio /logs-->
<param name="File" value="logs\\" />
<!--Añadir contenido al final del archivo-->
<param name="AppendToFile" value="true" />
<!--Mantener máximo 10 archivos de copia de seguridad-->
<param name="MaxSizeRollBackups" value="10" />
<!--Nombre de archivo generado dinámicamente por fecha-->
<param name="StaticLogFileName" value="false" />
<!--Estructura de carpetas logs/yyyy/MM/yyyy‑MM‑dd.log -->
<param name="DatePattern" value="yyyy\\MM\\yyyy-MM-dd".log"" />
<!--Rotación de ficheros de log por fecha-->
<param name="RollingStyle" value="Date" />
<!--Formato de salida de registros-->
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<!--Logger raíz vinculado al appender-->
<root>
<level value="ALL" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>
</configuration>Lenguaje del código: HTML, XML (xml)
2 Inicializar en AssemblyInfo.cs
Abre Properties/AssemblyInfo.cs de tu proyecto y agrega este código al final del archivo:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]Lenguaje del código: JSON / JSON con comentarios (json)
ConfigFile="log4net.config":Ruta del archivo de configuración independiente (directorio raíz del sitio)Watch=true:Habilitar recarga en caliente. Los cambios en log4net.config surten efecto sin reiniciar el sitio web
3 Código de llamada en la página
using log4net;
public partial class Default : System.Web.UI.Page
{
// Crear instancia del logger
public ILog log = LogManager.GetLogger("Registrador para la página Default.aspx");
protected void Page_Load(object sender, EventArgs e)
{
log.Info("Registro normal");
log.Error("Registro de error");
log.Debug("Mensaje de depuración");
}
}
Archivo de configuración independiente
Previous: Salida de registros en consola