mvc 4 log4net not working

17 views
Skip to first unread message

Antonio Kuroki

unread,
Mar 3, 2017, 9:57:04 AM3/3/17
to NHibernate-Br
Ola pessoal,

estou tentando gerar logs usando o log4net mas não estou conseguindo.

OBS: O arquivo de Log é gerado porem sem nenhuma informação nele, nem logs que eu coloco nem os do hibernate, alguem sabe dizer o motivo?


estou fazendo da seguinte forma: 
web.config

<configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>

<appSettings>
    <add key="webpages:Version" value="2.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="PreserveLoginUrl" value="true" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />

    <add key="log4net.Config" value="log4net.config"/>
    <add key="log4net.Config.Watch" value="True"/>
    
  </appSettings>

<log4net debug="true">
    <appender name="FileAppender" type="log4net.Appender.RollingFileAppender, log4net">
      <file type="log4net.Util.PatternString" value="Logs/"/>
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <appendToFile value="true"/>
      <rollingStyle value="Date"/>
      <staticLogFileName value="false"/>
      <datePattern value="'MyLog_'yyyyMMdd'.log'"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date{HH:mm:ss.fff} %-5level: %message%newline"/>
      </layout>
    </appender>
    <logger name="LogEmArquivo">
      <level value="DEBUG"/>
      <appender-ref ref="FileAppender"/>

      <appender-ref ref="NHibernate" />
      <appender-ref ref="NHibernate.SQL" />
    </logger>
    
    <logger name="NHibernate">
      <level value="WARN" />
    </logger>

    <logger name="NHibernate.SQL">
      <level value="DEBUG" />
    </logger>

    <root>
      <level value="DEBUG" />
      <appender-ref ref="LogEmArquivo" />
      
      <appender-ref ref="NHibernate" />
      <appender-ref ref="NHibernate.SQL" />
    </root>
  </log4net>

No AssemblyInfo.cs

[assembly: log4net.Config.XmlConfigurator(Watch = true)]


No Helper
log4net.Config.XmlConfigurator.Configure();
log  = LogManager.GetLogger("LogEmArquivo");


Alguem pode me dizer o que esta errado?
ja tentei de varias formas e nao consegui gerar os logs ate agora, só gera o arquivo vazio.

Felipe Oriani

unread,
Mar 3, 2017, 12:31:06 PM3/3/17
to nhiber...@googlegroups.com
Em ambiente de dev (compilando e rodando pelo Visual Studio), consigo fazer funcionar ok.

  <log4net debug="false">

    <appender name="NHibernateRollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="nhibernate.log" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="5" />
      <maximumFileSize value="200KB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n"  />
      </layout>
    </appender>

    <logger name="NHibernate.SQL" additivity="false">
      <level value="ALL" />
      <appender-ref ref="NHibernateRollingFileAppender" />
    </logger>

    <root>
      <level value="ALL" />
    </root>

  </log4net>

este appender ai, cria um arquivo e loga até o arquivo atingir 200KB e cria novos arquivos até atingir 5, depois vai apagando os mais antigos para alocar os mais novos, modifique como precisar.

No global.asax.cs:

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

No evento Application_Start:

            log4net.Config.XmlConfigurator.Configure();

            ILog logger = LogManager.GetLogger(typeof(WebApiApplication));
            logger.Info("Starting Application ...");

Sem esse primeiro log na mão, não funciona. Lamentável isso!

Em release, tentei fazer funcionar para verificar uma query em produção mas sem sucesso, não consegui fazer funcionar, se alguém puder me ajudar. 


--
Você recebeu essa mensagem porque está inscrito no grupo "NHibernate-Br" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nhibernate-br+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para nhiber...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/nhibernate-br.
Para mais opções, acesse https://groups.google.com/d/optout.



--
______________________________________
Felipe B Oriani
Reply all
Reply to author
Forward
0 new messages