Qué tal, Cristian.
Yo tengo implemento log4net en un par de sistemas. Te paso la configuración
que estoy usando en uno de ellos. Espero te sirva.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<log4net debug="true">
<appender name="trace" type="log4net.Appender.TraceAppender, log4net">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p %c{1}:%L -
%m%n"/>
</layout>
</appender>
<appender name="console" type="log4net.Appender.ConsoleAppender,
log4net">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p %c{1}:%L -
%m%n"/>
</layout>
</appender>
<appender name="CleanedConsole" type="log4net.Appender.ConsoleAppender,
log4net">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%m%n"/>
</layout>
</appender>
<appender name="MyAppInfoRollingFile"
type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="log/MyApp_Info_Log.txt"/>
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Date"/>
<param name="DatePattern" value="yyyy.MM.dd"/>
<param name="StaticLogFileName" value="true"/>
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
</layout>
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="INFO"/>
<acceptOnMatch value="true"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
</appender>
<appender name="MyAppWarnRollingFile"
type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="log/MyApp_Warn_Log.txt"/>
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Date"/>
<param name="DatePattern" value="yyyy.MM.dd"/>
<param name="StaticLogFileName" value="true"/>
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
</layout>
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="WARN"/>
<acceptOnMatch value="true"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
</appender>
<appender name="MyAppDebugRollingFile"
type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="log/MyApp_Debug_Log.txt"/>
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Date"/>
<param name="DatePattern" value="yyyy.MM.dd"/>
<param name="StaticLogFileName" value="true"/>
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
</layout>
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="DEBUG"/>
<acceptOnMatch value="true"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
</appender>
<appender name="MyAppErrorRollingFile"
type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="log/MyApp_Error_Log.txt"/>
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Date"/>
<param name="DatePattern" value="yyyy.MM.dd"/>
<param name="StaticLogFileName" value="true"/>
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
</layout>
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="ERROR"/>
<acceptOnMatch value="true"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
</appender>
<appender name="MyAppErrorSmtpAppender"
type="log4net.Appender.SmtpAppender,log4net">
<to value="[email protected]"/>
<from value="[email protected]"/>
<subject value="[Adecco Empleo] Error"/>
<smtpHost value="10.154.2.79"/>
<bufferSize value="512"/>
<lossy value="false"/>
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="ERROR"/>
<acceptOnMatch value="true"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
<layout type="log4net.Layout.PatternLayout,log4net">
<conversionPattern value="%property{log4net:HostName} :: %level ::
%message %newlineLogger: %logger%newlineThread: %thread%newlineDate:
%date%newlineNDC: %property{NDC}%newline%newline"/>
</layout>
</appender>
<appender name="NHibernate_SQL_RollingFile"
type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="log/NHibernate_SQL_Log.txt"/>
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Date"/>
<param name="DatePattern" value="yyyy.MM.dd"/>
<param name="StaticLogFileName" value="true"/>
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
</layout>
</appender>
<appender name="NHibernate_Transaction_RollingFile"
type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" value="log/NHibernate_Transaction_Log.txt"/>
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Date"/>
<param name="DatePattern" value="yyyy.MM.dd"/>
<param name="StaticLogFileName" value="true"/>
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
</layout>
</appender>
<root>
<priority value="OFF"/>
<appender-ref ref="CleanedConsole"/>
</root>
<logger name="NHibernate.SQL">
<level value="ALL"/>
<appender-ref ref="NHibernate_SQL_RollingFile"/>
</logger>
<logger name="NHibernate.Transaction">
<level value="ALL"/>
<appender-ref ref="NHibernate_Transaction_RollingFile"/>
</logger>
<logger name="MyApp">
<level value="ALL"/>
<appender-ref ref="MyAppInfoRollingFile"/>
<appender-ref ref="MyAppWarnRollingFile"/>
<appender-ref ref="MyAppDebugRollingFile"/>
<appender-ref ref="MyAppErrorRollingFile"/>
<appender-ref ref="MyAppErrorSmtpAppender"/>
</logger>
</log4net>
<appSettings file="MyApp.config"/>
</configuration>
Como podrás ver, tengo varios archivos. Para loguear info, debug, warnings y
errores.
En esta clase instancio el logger :
public class GenericService : IGenericService
{
* public readonly ILog _log = LogManager.GetLogger(typeof
(GenericService).Assembly, "MyApp");
*
public GenericService()
{
XmlConfigurator.Configure();
}
}
Y en ésta lo uso :
public class ManageInstitucionService : GenericService,
IManageInstitucionService
{
#region IManageInstitucionService Members
public Institucion Create(Institucion pInstitucion)
{
string sMethodName = "_Create";
if (pInstitucion == null)
{
* _log.Error("Debe especificarse una instancia no nula para
'pInstitucion'));*
return null;
}
else
{
NHib.Infraestructure.Repository rep =
MyApp.NHib.Infraestructure.Repository.Current;
try
{
rep.SaveObject(pInstitucion);
* _log.Info("Institucion : Id = {0}, Nombre = {1} creada
exitosamente.", pInstitucion.Id, pInstitucion.Nombre));*
return pInstitucion;
}
catch (Exception ex)
{
* _log.Error("Error : ", ex);*
return null;
}
}
}
Saludos.
2009/4/8 Leandro Halfon <[email protected]>
> Cristian..
> El archivo segun recuerdo lo tenes que tener creado. No lo crea
> automaticamente.
> saludos.
>
> 2009/4/8 Cristian C. Bittel <[email protected]>
>
> Sebastián, viendo el link que me enviaste logré agregar esto en el
>> archivo de configuración, lo resalté con color rojo. También agregué una
>> línea de código que no la había visto antes, la agregué dentro del
>> Main(): log4net.Config.XmlConfigurator.Configure();
>>
>> Con eso parece que se le indica al log4net que utilice la configuración
>> desde el app.config, pero de todas formas todavía no logro loguear mis
>> mensajes, ni siquiera se crea el archivo especificado.
>>
>>
>>
>> ¿Tenés idea qué más me puede estar faltando agregar?
>>
>>
>>
>>
>>
>> <?xml version="1.0" encoding="utf-8" ?>
>>
>> <configuration>
>>
>> <configSections>
>>
>> <sectionGroup name="applicationSettings"
>> type="System.Configuration.ApplicationSettingsGroup, System,
>> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
>>
>> <section name="Procesamiento.Properties.Settings"
>> type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0,
>> Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"
>> />
>>
>>
>>
>> <section name="log4net"
>> type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
>>
>>
>>
>> </sectionGroup>
>>
>> </configSections>
>>
>> <applicationSettings>
>>
>> <Procesamiento.Properties.Settings>
>>
>> <setting name="CarpetaOrigen" serializeAs="String">
>>
>> <value>C:\Demo\Origen\</value>
>>
>> </setting>
>>
>> <setting name="CarpetaDestino" serializeAs="String">
>>
>> <value>C:\Demo\Destino\</value>
>>
>> </setting>
>>
>> <setting name="IdentificadorEstacionTrabajo"
>> serializeAs="String">
>>
>> <value>ID_WSK_01</value>
>>
>> </setting>
>>
>> </Procesamiento.Properties.Settings>
>>
>>
>>
>> <log4net debug="true">
>>
>> <appender name="RollingLogFileAppender"
>> type="log4net.Appender.RollingFileAppender">
>>
>> <file value="C:\\Temp\\TestLog.txt" />
>>
>> <appendToFile value="true" />
>>
>> <rollingStyle value="Size" />
>>
>> <maxSizeRollBackups value="10" />
>>
>> <maximumFileSize value="10MB" />
>>
>> <staticLogFileName value="true" />
>>
>> <layout type="log4net.Layout.PatternLayout">
>>
>> <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M
>> - %m%n" />
>>
>> </layout>
>>
>> </appender>
>>
>>
>>
>> <root>
>>
>> <level value="DEBUG" />
>>
>> <priority value="ALL" />
>>
>> <appender-ref ref="RollingLogFileAppender" />
>>
>> </root>
>>
>> </log4net>
>>
>>
>>
>> </applicationSettings>
>>
>> </configuration>
>>
>>
>>
>> Cristian.
>>
>>
>>
>> *From:* [email protected] [mailto:[email protected]] *On Behalf Of
>> *Sebastian
>> Fiorentino
>> *Sent:* miércoles, 08 de abril de 2009 02:41 p.m.
>> *To:* [email protected]
>> *Subject:* [puntonet] Log4Net
>>
>>
>>
>> Creo que esto te va a servir.
>>
>> http://www.codeproject.com/KB/dotnet/ConfigureLog4Net.aspx
>>
>>
>> ------------------------------
>>
>> *De:* Cristian C. Bittel <[email protected]>
>> *Para:* [email protected]
>> *Enviado:* miércoles 8 de abril de 2009, 13:41:07
>> *Asunto:* [puntonet] Log4Net
>>
>> Necesito ayuda para poner a funcionar el Log4Net.
>>
>>
>>
>> Leí el tutorial pero no termino de entender dónde debo incluir la
>> configuración del Log4Net. Mi aplicación tiene su propio app.config y creo
>> que puedo incluir ahí la configuración del log, pero no sé cómo hacerlo,
>> ¿alguien me puede dar una mano?
>>
>>
>>
>> <?xml version="1.0" encoding="utf-8" ?>
>>
>> <configuration>
>>
>> <configSections>
>>
>> <sectionGroup name="applicationSettings"
>> type="System.Configuration.ApplicationSettingsGroup, System,
>> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
>>
>> <section name="Procesamiento.Properties.Settings"
>> type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0,
>> Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"
>> />
>>
>> </sectionGroup>
>>
>> </configSections>
>>
>> <applicationSettings>
>>
>> <Procesamiento.Properties.Settings>
>>
>> <setting name="CarpetaOrigen" serializeAs="String">
>>
>> <value>C:\Demo\Origen\</value>
>>
>> </setting>
>>
>> <setting name="CarpetaDestino" serializeAs="String">
>>
>> <value>C:\Demo\Destino\</value>
>>
>> </setting>
>>
>> <setting name="IdentificadorEstacionTrabajo"
>> serializeAs="String">
>>
>> <value>ID_WSK_01</value>
>>
>> </setting>
>>
>> </Procesamiento.Properties.Settings>
>>
>> </applicationSettings>
>>
>> </configuration>
>>
>>
>>
>> Cristian.
>>
>>
>> ------------------------------
>>
>>
>> Yahoo! Cocina
>> Recetas prácticas y comida saludable
>> Visitá http://ar.mujer.yahoo.com/cocina/
>>
>> No virus found in this incoming message.
>> Checked by AVG - www.avg.com
>> Version: 8.5.285 / Virus Database: 270.11.45/2045 - Release Date: 04/08/09
>> 05:53:00
>>
>
>