2012-01-12 17 views
16

Ok, así que estoy entiende cómo configurar el log4Net en mi solicitud, pero ahoraConfigurar log4net para el proyecto asp.net MVC3

Primera quiero mejorar la configuración diferenciando el nivel de los registros si la aplicación es una versión o una depuración, ¿cómo puedo hacer esto?

Segundo, si tuviera una carpeta en mi proyecto llamada LOG ¿cómo puedo establecer la configuración, para no utilizar la carpeta física de mi aplicación?

por ejemplo lugar de:

<file value="C:\physicalpath\LOG\Log.log" /> 

utilizarse

<file value="\LOG\Log.log" /> 

o

<file value="%some_variable%\LOG\Log.log" /> 
+5

Si está iniciando sesión en una carpeta de su aplicación, tenga en cuenta que un atacante podría ver los contenidos o f esta carpeta con un poco de conjeturas y ver información confidencial sobre su aplicación. Haga que la carpeta no se vea en el administrador de IIS (elimine el permiso de lectura) o coloque la carpeta fuera de la raíz web. –

Respuesta

21

El Documenation es sencillo:

archivo: la ruta completa o relativa al archivo de registro.

Así que todo lo que necesita tener es la ruta completa como C:\physicalpath\LOG\Log.log o el ralative, esto tiene que comenzar con el carbón punto. como .\App_Data\Log4Net.Logs

también se puede utilizar el nombre carpeta en el atributo file, entonces usted debe utilizar el atributo datePattern para especificar el nombre del archivo, por ejemplo:

<appender name="FileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value=".\\App_Data\\Log4Net.Logs\\backend"/> 
    <datePattern value=".yyyy-MM-dd'.log'"/> 
    <appendToFile value="true"/> 
    <maximumFileSize value="256KB"/> 
    <maxSizeRollBackups value="2"/> 
    <rollingStyle value="Date"/> 
    <staticLogFileName value="false"/> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%level %thread %logger - %message%newline"/> 
    </layout> 
</appender> 

Asimismo, recuerda para añadir el

<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> 

para que pueda evitar que log4net bloquear el archivo y no se puede usado para anexar sus mensajes.

Si no está acostumbrado a log4net, no se olvide de agregar el nodo <root>, este es el el que vamos a log4net saber lo que quiere usar y no los <appender> nodos, por ejemplo, puede tener 10 <appender> nodos y use solo uno, el nodo <root> solo se configura con el que desea usar ...


aquí es un configuración completa con 2 Mongo appenders y 1 Archivo appender, la <root> especifica que sólo el appender archivo está en uso:

<log4net> 
    <appender name="MongoAppender" type="log4net.Appender.MongoDBAppender, log4mongo-net"> 
     <!-- MongoDB 1 connection options --> 
     <host value="staff.mongohq.com"/> 
     <port value="10077"/> 
     <databaseName value="myApp_2011"/> 
     <collectionName value="logs_net"/> 
     <userName value="myself"/> 
     <password value="123456"/> 
    </appender> 
    <appender name="MongoAppenderAppHarbor" type="log4net.Appender.MongoDBAppender, log4mongo-net"> 
     <!-- MongoDB 2 connection options --> 
     <host value="staff.mongohq.com"/> 
     <port value="10048"/> 
     <databaseName value="d1741d63-46b1-4a44-9c49-8c28cecae36b"/> 
     <collectionName value="logs_net"/> 
     <userName value="myself"/> 
     <password value="123456"/> 
    </appender> 
    <appender name="FileAppender" type="log4net.Appender.RollingFileAppender"> 
     <!-- Local file options --> 
     <file value=".\\App_Data\\Log4Net.Logs\\backend"/> 
     <datePattern value=".yyyy-MM-dd'.log'"/> 
     <appendToFile value="true"/> 
     <maximumFileSize value="256KB"/> 
     <maxSizeRollBackups value="2"/> 
     <rollingStyle value="Date"/> 
     <staticLogFileName value="false"/> 
     <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%level %thread %logger - %message%newline"/> 
     </layout> 
    </appender> 
    <root> 
     <!-- 
     <level value="DEBUG" /> 
     <appender-ref ref="MongoAppender" /> 
     <appender-ref ref="MongoAppenderAppHarbor" /> 
     --> 
     <appender-ref ref="FileAppender"/> 
    </root> 
    </log4net> 
+0

Hola, y gracias por preguntar bien. Entiendo claramente mi duda relacionada con las rutas físicas, pero su configuración completa son sus recomendaciones para mi primera preocupación acerca de la liberación de dos bots de configuración y depuración. Gracias – Jorge

+0

no, no, es mi propia implementación en vivo (aparte de los datos de inicio de sesión) ... así que, ** hay 2 preguntas diferentes ** sobre su pregunta. puedes ** separarlos ** y publicar la nueva URL aquí. Deje que este sea para "cómo usar la ruta relativa" y cree una nueva preguntando cómo usar los diferentes esquemas ... – balexandre

+0

He actualizado mi pregunta y gracias de nuevo – Jorge

0

continuación es una sección de la muestra app.config, con el Sendero ser defin ed a través de la etiqueta <file value="somepath"/>.

This link es un buen recurso para la documentación

<log4net> 
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="C:\\SOMEPATH\\SOMELOG.log"/> 
    <appendToFile value="true"/> 
    <rollingStyle value="Size"/> 
    <maxSizeRollBackups value="10"/> 
    <maximumFileSize value="10MB"/> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %-5level %logger – %message%exception%newline"/> 
    </layout>  
</appender> 
<root> 
    <level value="ALL"/> 
    <appender-ref ref="RollingFileAppender"/> 
</root>  
</log4net> 
3

Recuerde que tal vez debería añadir en Global .asax.cs el siguiente código:

protected void Application_Start() 
{ 
      log4net.Config.XmlConfigurator.Configure(); 

} 
+0

¿Qué hace qué? – quantum

Cuestiones relacionadas