Log4net é a versão .net do Apache log4j. É um conjunto de mecanismos de log de configuração XML. Recentemente, decidi estudá-lo. Obrigado a Hao Wei pela recomendação.
O sistema log4net é dividido em 7 níveis de log. Se definido como "WARN", DEBUG e INFO não serão registrados. Como segue:
1. ALL
2. DEBUG
3. INFO
4. WARN
5. ERROR
6. FATAL
7. OFF
Criando o aplicativo de exemplo
Etapa 1: Baixe log4net
e acesse logging.apache.org/log4net para obter a versão mais recente. No exemplo usei incubating-log4net-1.2.9-beta.zip, estou ansioso pela versão oficial.
Etapa 2: Crie um aplicativo Web ASP.NET
Não entrarei em detalhes sobre como criá-lo, conforme mostrado em log4net-1.2.0-beta8binnet. Encontre a dll correspondente e adicione-a à referência. Algumas versões não possuem uma dll compilada, então compile você mesmo e use a versão .NET V1.0 para convertê-la para 1.1 ou 2.0. Acho que não é um erro de trabalho, mas intencional. Muitas pessoas que estão acostumadas a jogar Java são assim.
Configurando o aplicativo de amostra
Etapa 3: Adicionar informações do assembly.
Abra o arquivo AssemblyInfo.cs e adicione:
[assembly: log4net.Config.DOMConfigurator()]
Esta frase significa que o sistema log4net procurará automaticamente o arquivo de configuração Web.config para obter e carregar as informações de configuração. Se você quiser que o log4net monitore o arquivo de configuração a qualquer momento para recarregar, será um pouco mais problemático. Você precisa escrever assim:
[assembly:log4net.Config.DOMConfigurator(ConfigFile="filename",ConfigFileExtension="log4net",Watch=true)]
Etapa 4: Para adicionar informações de configuração
, você precisa editar o arquivo Web.config. Fico sempre surpreso. Eu vejo isso. Encontre a tag de configuração e escreva configSections imediatamente abaixo dela (sem considerar os outros, e se alguém for tão dominador quanto ele? Então basta escrever seu arquivo de configuração de log! Acho que o APACHE é assim). Dê uma olhada em um exemplo:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler, log4net-net-1.0"
/>
</configSections >
<!-- Esta seção contém as definições de configuração do log4net -->
<log4net>
<!-- Defina alguns anexadores de saída -->
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type=" log4net.Layout.PatternLayout">
<param name="ConversionPattern"
value="%d [%t] %-5p %c [%x] <%X{auth}>
/layout>
</appender>
<!-- RollingFileAppender cuida da rolagem de arquivos por tamanho ou data -->
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value= "C:\log\RollingLogHelloWorld.log" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="10" />
<param name="MaximumFileSize" valor ="1000" />
<param name="RollingStyle" value="Size" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name= "ConversionPattern" value="%d [%t] %-5p %-45c [%x] - %m%n" />
</layout>
</appender>
<!-- FileAppender anexa a um log e é gerenciado manualmente ou tamanho -->
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="LogHelloWorld.log" />
<!-- Exemplo usando variáveis de ambiente em params -->
<!-- <param name="File" value="${TMP}\ApplicationKit.log" /> -->
<param name="AppendToFile" value="true" />
<layout type= "log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
</appender>
< !-- Configure a categoria raiz, adicione os anexadores e defina o nível padrão -->
<root>
<level value="INFO" />
<appender-ref ref="ConsoleAppender" />
</root>
<!-- Categoria ApplicationKit - a UI de apresentação -->
<logger name="WebForm1">
<level value="INFO" />
<appender-ref ref="FileAppender" />
</logger>
</log4net>
</configuration>
Observe que o atributo NAME do nó Logger está configurado como WebForm1, que se refere ao nome da classe. Adicione esse nó a cada classe que precisa adicionar LOG. Penso no fluxo de trabalho OSWORKFLOW Muitas vezes, flexibilidade, conveniência e praticidade não podem ser alcançadas ao mesmo tempo. O nível aqui é INFO, ou seja, qualquer coisa abaixo de INFO não será registrada.
Executando o aplicativo de exemplo
Etapa 5: Para adicionar uma classe Log,
primeiro adicione uma referência
usando log4net; usando log4net.Config //Então se você estudar o arquivo de configuração com cuidado, então este método de declaração é fácil de entender: private static readonly ILog log = LogManager. .GetLogger("WebForm1");
Etapa 6: Usando o objeto Log
Agora, todo o trabalho de configuração foi concluído. A próxima etapa é testá-lo e conectá-lo à camada de aplicação. Basta adicionar um botão no manipulador de eventos Button1_Click do evento de resposta.
log.Info("Olá mundo, sou um madeireiro");
Etapa 7: Execute o aplicativo
Agora ele pode ser executado. Deve ficar assim:
Cada vez que você clicar no botão,2006-02-13 10:12:30,671 [1228] INFO WebForm1 [] - Hello
aparecerá no arquivo de data. .
Mundo, eu sou um madeireiro é um grande recorde.
Resumo:
É simples e fácil de usar. Vamos estudar o log SQL depois de um tempo.
Para obter mais informações, consulte http://logging.apache.org/log4net/