相关疑难解决方法(0)

外部文件中的Log4Net配置不起作用

我们正在使用log4net并希望在外部配置文件中指定它的配置(正如我们对其他部分所做的那样).为此,我们将App.config中的log4net部分更改为:

...
<section name="log4net" 
     type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
...
<log4net configSource="Log.config" />
...
Run Code Online (Sandbox Code Playgroud)

在Log.Config文件(与App.config相同的目录)中,我们有:

<log4net>
  <appender name="General" type="log4net.Appender.FileAppender">
    <file value="myapp.log" />
    <layout type="log4net.Layout.SimpleLayout" />
  </appender>
  <root>
    <appender-ref ref="General" />
  </root>
</log4net>
Run Code Online (Sandbox Code Playgroud)

但是,当我们运行应用程序时,不会创建任何日志文件(并且没有完成日志记录).没有错误消息输出到控制台.

如果我们将Log.config文件的内容移回App.config(替换上面的第一个代码行),它将按预期工作.知道为什么它不在外部文件中工作吗?

configuration logging log4net file external

88
推荐指数
5
解决办法
7万
查看次数

如何从头开始以编程方式配置log4net(无配置)

这是一个坏主意,我知道,但是...我想从头开始以编程方式配置log4net,没有配置文件.我正在为我和我的团队开发一个简单的日志记录应用程序,用于我们负责的一些相对较小的部门应用程序.我希望他们都登录到同一个数据库.日志记录应用程序只是log4net的一个包装器,预先配置了AdoNetAppender.

所有应用程序都是ClickOnce部署的,这对部署配置文件提出了一个小问题.如果配置文件是核心项目的一部分,我可以设置其属性以使用程序集进行部署.但它是链接应用程序的一部分,因此我无法选择将其与主应用程序一起部署.(如果那不是真的,请有人告诉我).

可能因为它是一个坏主意,似乎没有太多的示例代码可用于从头开始以编程方式配置log4net.这是我到目前为止所拥有的.

Dim apndr As New AdoNetAppender()
apndr.CommandText = "INSERT INTO LOG_ENTRY (LOG_DTM, LOG_LEVEL, LOGGER, MESSAGE, PROGRAM, USER_ID, MACHINE, EXCEPTION) VALUES (@log_date, @log_level, @logger, @message, @program, @user, @machine, @exception)"
apndr.ConnectionString = connectionString
apndr.ConnectionType = "System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
apndr.CommandType = CommandType.Text
Dim logDate As New AdoNetAppenderParameter()
logDate.ParameterName = "@log_date"
logDate.DbType = DbType.DateTime
logDate.Layout = New RawTimeStampLayout()
apndr.AddParameter(logDate)
Dim logLevel As New AdoNetAppenderParameter()
logLevel.ParameterName = "@log_level"
'And so forth...
Run Code Online (Sandbox Code Playgroud)

配置完所有参数后apndr,我首先尝试了这个...

Dim hier As Hierarchy = DirectCast(LogManager.GetRepository(), Hierarchy) …
Run Code Online (Sandbox Code Playgroud)

.net logging log4net

84
推荐指数
5
解决办法
5万
查看次数

标签 统计

log4net ×2

logging ×2

.net ×1

configuration ×1

external ×1

file ×1