我如何在 F# 中使用 Log4Net?

Posted

技术标签:

【中文标题】我如何在 F# 中使用 Log4Net?【英文标题】:How can i use Log4Net in F#? 【发布时间】:2021-09-23 05:32:23 【问题描述】:

如何在 F# 中使用 Log4Net?我执行这个程序,但什么也没发生。 我在 nuget 上安装 log4net(版本为 2.0.12)。

这是我的配置文件

    <log4net>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="LogFiles/"/> 
    <staticLogFileName value="false"/>
    <appendToFile value="true"/>
    <rollingStyle value="Date"/>
    <datePattern value="yyyyMMdd.lo\g"/>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%-5p %dateyyyy/MM/dd HH:mm:ss %-20c1 %-20M %m%n" />
    </layout>
    </appender>
    <root>
    <level value="ALL"/>
    <appender-ref ref="RollingFileAppender"/>
    </root>
    </log4net>

还有我的 program.fs

    open System
    open log4net
    open log4net.Config

    let from whom =
      sprintf "from %s" whom

    [<EntryPoint>]
      let main argv =
      let message = from "F#" 

      let log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)

      log.Info("Hello logging world!")

      printfn "Hello world %s" message
      0 

【问题讨论】:

我建议使用代码而不是配置文件来配置 log4net。 【参考方案1】:

如果您使用的是 .NET Core,则必须告诉 log4net 在程序开始时加载配置,如下所示:

open System.IO

FileInfo("log4net.config")
    |> XmlConfigurator.Configure
    |> ignore

更多详情here.

【讨论】:

以上是关于我如何在 F# 中使用 Log4Net?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 WPF 应用程序中使用 App.config 进行 log4net 配置

如何追踪 log4net 问题

如何使用 log4net 每个任务登录到不同的文件?

如何使用 datePattern 在 log4net 中指定绝对文件路径?

如何在 log4net 中过滤自定义级别?

如何使用 Log4net 进行日志记录?