从 WCF 服务库项目调用时,Log4Net 记录器类不创建文件?

阿努亚

在类库项目中有这个 Log4net 类。在使用 .dll 后从 Windows 应用程序访问时,将创建文件并写入日志。

在我的 WCF 服务库项目中使用我的类库项目的相同 .dll 时,根本不会创建该文件。

我从 Windows 应用程序和 wcf 服务库项目写入日志的方式与下面完全相同。

为什么从 WCF 调用时行为不同?

我如何从同一解决方案中的其他项目调用记录器类:

public Logger Logger;
Logger = Logger.Instance();
Logger.Debug("Product Service is called");

类库项目中的记录器类:

    public class Logger
{
    private static volatile Logger instance;
    private static object syncRoot = new Object();
    private static log4net.ILog logger = null;
    private object _lock = new object();

    private Logger()
    {
        if (logger == null)
        {
            XmlConfigurator.Configure();
            logger = log4net.LogManager.GetLogger("LoggerManager");
        } 
    }

    public static Logger Instance()
    { 
        if (instance == null)
        {
            lock (syncRoot)
            {
                if (instance == null)
                    instance = new Logger();
            }
        } 
        return instance;
    } 


    public void Info(string info, [CallerMemberName] string memberName = "", [CallerFilePath] string filePath = "", [CallerLineNumber] int lineNumber = 0)
    {
        lock (_lock)
        {
            logger.Info(string.Format("Info : {0} in member {1}, file {2} at line {3}", info, memberName, filePath, lineNumber));
        }
    }
}

log4net.config.xml :

  <log4net debug="false">
  <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
    <file value="c:\Logs\App.Log" />
    <threshold value="ALL" />
    <appendToFile value="true" />
    <rollingStyle value="Composite" />
    <maximumFileSize value="1MB" />
    <maxSizeRollBackups value="10" />
    <datePattern value="yyyyMMdd" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="*%-10level %-30date %message [%logger] [%thread] %newline" />
    </layout>
  </appender>
  <logger name="Logger">
    <level value="ALL"/>
    <appender-ref ref="RollingFileAppender"/>
  </logger> 

  <root>
    <level value="ALL" />
    <appender-ref ref="RollingFile" /> 
  </root>
</log4net>
于尔根·穆勒

您的 WCF 服务<log4net>的相应app.config文件中是否有该部分如果丢失,则不会创建日志文件。

编辑

在聊天室中追查到问题后,解决方案是将丢失log4net.config.xml的WCF dll复制到输出目录中。然后日志文件出现了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

IIS中托管的WCF服务库的log4net

来自分类Dev

Log :: Log4Perl屏幕记录器在创建文件记录器后停止工作

来自分类Dev

使用log4net和IHttpModule与WCF服务

来自分类Dev

使用WCF时未写入Log4Net日志文件

来自分类Dev

WCF不添加服务

来自分类Dev

挂钩WCF服务创建

来自分类Dev

创建动态WCF服务?

来自分类Dev

使用IDispatchMessageInspector记录WCF服务

来自分类Dev

log4net到类库

来自分类Dev

如何设置log4net以使其在wcf服务上正常工作?

来自分类Dev

如何在Windows的WCF服务应用程序中创建文件

来自分类Dev

访问WCF服务根文件

来自分类Dev

WCF服务-不返回相关实体

来自分类Dev

安装windows服务后Log4net不创建日志文件

来自分类Dev

在使用时间轮转记录器创建的每个日志文件中写入标头

来自分类Dev

首先TDD WCF服务类本身

来自分类Dev

首先TDD WCF服务类本身

来自分类Dev

如何获取通过类库项目中的服务引用引用的XML格式的WCF响应

来自分类Dev

控制台中的WCF Ria类库

来自分类Dev

记录器依赖项注入,获取调用类名称和源文件路径

来自分类Dev

$ .getJSON不执行WCF服务调用的成功回调

来自分类Dev

异步WCF服务调用

来自分类Dev

从WCF服务调用EXE

来自分类Dev

Log4net不登录到数据库

来自分类Dev

如何基于WCF数据服务创建POCO类

来自分类Dev

Log4Net不会从类库登录

来自分类Dev

使用log4net作为类库?

来自分类Dev

WCF服务中的操作筛选器

来自分类Dev

无法通过类库使用WCF服务客户端