将信息记录到不同的日志文件中

发布于 2024-08-24 07:40:01 字数 1093 浏览 10 评论 0原文

我的 web.config 文件中有以下配置,但是如何在 C# 中将这些信息分别记录到 data.txtgeneral.txt 中?

有人可以为我提供一些示例代码吗?

<appender name="GeneralLog" type="log4net.Appender.RollingFileAppender">
  <file value="App_Data/Logs/general.txt" />
  <appendToFile value="true" />
  <maximumFileSize value="2MB" />
  <rollingStyle value="Size" />
  <maxSizeRollBackups value="5" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n"  />
  </layout>
</appender>
<appender name="DataLog" type="log4net.Appender.RollingFileAppender">
  <file value="App_Data/Logs/data.txt" />
  <appendToFile value="true" />
  <maximumFileSize value="2MB" />
  <rollingStyle value="Size" />
  <maxSizeRollBackups value="5" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n"  />
  </layout>
</appender>

I have the following configurations in my web.config file, but how can I log the information into data.txt and general.txt separately in C#?

Could anyone provide some sample code for me?

<appender name="GeneralLog" type="log4net.Appender.RollingFileAppender">
  <file value="App_Data/Logs/general.txt" />
  <appendToFile value="true" />
  <maximumFileSize value="2MB" />
  <rollingStyle value="Size" />
  <maxSizeRollBackups value="5" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n"  />
  </layout>
</appender>
<appender name="DataLog" type="log4net.Appender.RollingFileAppender">
  <file value="App_Data/Logs/data.txt" />
  <appendToFile value="true" />
  <maximumFileSize value="2MB" />
  <rollingStyle value="Size" />
  <maxSizeRollBackups value="5" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n"  />
  </layout>
</appender>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

℡Ms空城旧梦 2024-08-31 07:40:01

理想情况下,在您的应用程序中,您应该以相同的方式记录常规数据和数据,只是使用不同的记录器。在配置中,您有几个选项可以选择如何将传入的日志消息“路由”到不同的附加程序。

首先是伐木者本身。根据您的应用程序在类和命名空间方面的组织方式,您可以根据命名空间层次结构以分层方式组织记录器。然后,您可以在层次结构中将不同的分支分配给不同的附加程序。请阅读此处的级别继承部分。

除了记录器层次结构之外,您还可以使用任何名称作为记录器名称。因此,对于应用程序的常规部分,您可以使用名为“general”的记录器。

接下来,您可以用来控制日志消息流的是使用过滤器。您可以根据记录器名称、级别、属性等过滤消息,也可以实现自己的过滤器。

下面的示例展示了如何使用记录器元素和过滤器将常规数据和数据路由到附加程序。我们将根元素(接收所有日志消息)路由到数据附加器。在数据附加器中,我们过滤掉来自通用记录器的所有消息。

此外,我们将通用记录器路由到通用附加程序。

<appender name="GeneralLog" type="log4net.Appender.RollingFileAppender">
    ...
</appender>

<appender name="DataLog" type="log4net.Appender.RollingFileAppender">
    <filter type="log4net.Filter.LoggerMatchFilter">
        <loggerToMatch value="general" />
        <acceptOnMatch value="false" />
    </filter>
    ...
</appender>

<root>
    <level value="DEBUG" />
    <appender-ref ref="DataLog" />
</root>

<logger name="general">
    <level value="WARN" />
    <appender-ref ref="GeneralLog" />
</logger>

In your app, ideally, you should log the same way for both general and data, just using different loggers. In configuration you have a few options how to "route" the incoming log messages to different appenders.

The first is the loggers themselves. Depending on how your app is organized in terms of classes and namespaces, you organize your loggers in a hierarchical manner according to your namespace hierarchy. Then you can have different branches in the hierarchy going to different appenders. Read up on the Level Inheritance section here.

In addition to logger hierarchies, you can use any name as logger names. So for your general sections of your app, you could use a logger named "general".

Next thing you can use to control log message flow is using filters. You can filter messages on logger name, level, properties etc. or you can implement your own filters.

Here's a sample to show how you could route general and data to your appenders using the logger element and a filter. We route the root element (which receives all log messages) to the data appender. At the data appender we filter out all messages coming from the general logger.

Additionally, we route the general logger to the general appender.

<appender name="GeneralLog" type="log4net.Appender.RollingFileAppender">
    ...
</appender>

<appender name="DataLog" type="log4net.Appender.RollingFileAppender">
    <filter type="log4net.Filter.LoggerMatchFilter">
        <loggerToMatch value="general" />
        <acceptOnMatch value="false" />
    </filter>
    ...
</appender>

<root>
    <level value="DEBUG" />
    <appender-ref ref="DataLog" />
</root>

<logger name="general">
    <level value="WARN" />
    <appender-ref ref="GeneralLog" />
</logger>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文