当我按照xml配置为remotingappender配置log4net时,一切正常。
<log4net>
<appender name="RemotingAppender" type="log4net.Appender.RemotingAppender" >
<sink value="tcp://localhost:8085/LoggingSink" />
<lossy value="false" />
<bufferSize value="1" />
<onlyFixPartialEventData value="true" />
</appender>
<root>
<level value="ALL" />
<appender-ref ref="RemotingAppender" />
</root>
</log4net>
我想在代码中做同样的事情。我搜索了一个小小的位置,找到了如下的例子。但我无法让它发挥作用。
ILog log = log4net.LogManager.GetLogger("logName");
Repository.Hierarchy.Logger l = (Repository.Hierarchy.Logger)log.Logger;
// set level
l.Level = l.Hierarchy.LevelMap["ALL"];
// create appander
Appender.RemotingAppender remotingAppender = new Appender.RemotingAppender();
remotingAppender.Name = "custom";
remotingAppender.Sink = "tcp://localhost:8085/LoggingSink";
remotingAppender.Lossy = false;
remotingAppender.BufferSize = 1;
//remotingAppender.Fix = log4net.Core.FixFlags.All;
// create pattern
log4net.Layout.PatternLayout layout = new log4net.Layout.PatternLayout();
layout.ConversionPattern = "%d [%thread] %-5p %c [%a] - %m [%line] [%M]%n";
layout.ActivateOptions();
remotingAppender.Layout = layout;
remotingAppender.ActivateOptions();
// add appender
l.AddAppender(remotingAppender);
// perform logging (doesnt work)
log.Warn("my warning");
log.Error("my error");
我的代码中缺少什么?
答案 0 :(得分:0)
尝试log4net.Config.BasicConfigurator.Configure(...)
oveloads中的一个。
答案 1 :(得分:0)
我终于开始工作了。我首先加载和xml配置几乎是空的。然后我把具有相同模式字符串的模式布局作为远程监听器。我修改过的xml文件如下:
<log4net>
<root>
<level value="ALL" />
</root>
</log4net>
我在我的应用程序开始时加载此配置(program.c)
log4net.Config.XmlConfigurator.Configure(file)