log4net的文件和数据库多个配置 [英] File and Database multiple configuration for log4net

查看:179
本文介绍了log4net的文件和数据库多个配置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有Web API,需要将日志数据写入文件和数据库中. 是否可以配置这样的设置?我试图了解 ILoggerRepository ,但我很困惑. 有人可以给我一些有关如何配置它以及如何在应用程序中使用它的提示吗?

I have Web API that needs to write log data, both to a file and to the database. Is it possible to configure such a setup? I am trying to understand ILoggerRepository but I am confused. Can someone give me the some tips on how to configure it and how to use it in application?

推荐答案

在我看来,您想同时写入两个不同的样式附加器.

It sounds to me like you want to write to two different style appenders at the same time.

好消息是这是内置在log4Net库中的.

The good news is that this is built right into the log4Net library.

您要执行的操作将配置文件配置为两个不同的附加程序.文件追加器和数据库追加器.

What you want to do so configure you configuration file to two different appenders. A file Appender and a Database appender.

可以在此处找到不同附加程序的示例. http://logging.apache.org/log4net/release/config-examples.html

Examples of the different appenders can be found here. http://logging.apache.org/log4net/release/config-examples.html

这是我一起鞭打的web.config的示例.您将必须对其进行调整才能使其正常工作,但是它将使您获得正确的开始.

Here is an example of an web.config that i whipped together. You are going to have to tweak it to get it to work for you, but it will get you on the right start.

最后一点,您的log4net配置不必在web.config中,但是恕我直言,它使事情变得更容易上手.一旦您的web.config开始变得有点混乱,就不必担心将其破坏.

One last point, your log4net configuration does not have to be in your web.config but IMHO it just makes things easier to get started. Worry about breaking it out once your web.config starts to get a little cluttered.

<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>

  <log4net>
    <appender name="FileAppender" type="log4net.Appender.FileAppender">
  <file value="log-file.txt" />
  <appendToFile value="true" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
  </layout>
</appender>

    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
  <bufferSize value="100" />
  <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  <connectionString value="data source=[database server];initial catalog=[database name];integrated security=false;persist security info=True;User ID=[user];Password=[password]" />
  <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
  <parameter>
    <parameterName value="@log_date" />
    <dbType value="DateTime" />
    <layout type="log4net.Layout.RawTimeStampLayout" />
  </parameter>
  <parameter>
    <parameterName value="@thread" />
    <dbType value="String" />
    <size value="255" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%thread" />
    </layout>
  </parameter>
  <parameter>
    <parameterName value="@log_level" />
    <dbType value="String" />
    <size value="50" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%level" />
    </layout>
  </parameter>
  <parameter>
    <parameterName value="@logger" />
    <dbType value="String" />
    <size value="255" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%logger" />
    </layout>
  </parameter>
  <parameter>
    <parameterName value="@message" />
    <dbType value="String" />
    <size value="4000" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%message" />
    </layout>
  </parameter>
  <parameter>
    <parameterName value="@exception" />
    <dbType value="String" />
    <size value="2000" />
    <layout type="log4net.Layout.ExceptionLayout" />
  </parameter>
</appender>

    <root>
      <level value="INFO" />
      <appender-ref ref="AdoNetAppender" />
      <appender-ref ref="FileAppender" />
    </root>
  </log4net>
</configuration>

这篇关于log4net的文件和数据库多个配置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆