我在我的控制台应用程序中使用log4net来记录执行期间的不同步骤和错误。在处理期间,应用程序将数据发送到WCF服务,其中数据用于执行某些操作。
我希望我的控制台应用程序中的客户端记录器设置与WCF服务共享,以便我也可以在我的WCF服务中使用它。有可能吗?
客户端应用程序中的log4net配置:
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Logs\\log_" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyyMMdd_HHmmss.\tx\t" />
<param name="StaticLogFileName" value="false" />
<maximumFileSize value="100KB" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<appender name="ErrorsAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Logs\\errorlog_" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyyMMdd_HHmmss.\tx\t" />
<param name="StaticLogFileName" value="false" />
<maximumFileSize value="100KB" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ERROR" />
<levelMax value="FATAL" />
</filter>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="RollingFileAppender" />
<appender-ref ref="ErrorsAppender" />
</root>
</log4net>
在WCF服务中:
public class SyncService : ISyncService
{
public ILog log { get; set; }
public void GetLogger(ILog _log)
{
log = _log;
}
}
接口文件:
namespace SyncService
{
[ServiceContract]
public interface ISyncService
{
[OperationContract]
void GetLogger(ILog _log);
}
}
最后在客户端应用程序中,我尝试将记录器传递给WCF服务:
// Setup communication with WCF service
SyncService.SyncServiceClient syncclient = new SyncService.SyncServiceClient();
// Pass logger to WCF service
syncclient.GetLogger(log);
我收到错误:
无法序列化方面:输入&#39; log4net.Core.LogImpl&#39;在集会中 &#39; log4net [...]
如何将记录器传递给我的WCF服务?