IIS中托管的WCF服务库的log4net

有海

对于一个项目,我有一个WCF服务库(目前非常简单),该库通过WCF服务网站项目托管在IIS 7.5中。

对于该WCF服务库,我需要log4net来记录一些主要事件。

但是在启动并访问该网站后,没有创建日志文件。

这是我的配置详细信息:

WCF服务库:

App.config (is containing the following)

<appSettings>
    <add key="log4net-config-file" value="log4net.config"/>
    <!-- <add key="log4net.Internal.Debug" value="true"/> -->
</appSettings>

log4net.config

<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
  </configSections>
  <log4net>
    <root>
      <level value="DEBUG"/>
      <appender-ref ref="RollingLogFileAppender"/>
    </root>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="C:\\Temp\\Logfile.txt"/>
      <appendToFile value="true"/>
      <rollingStyle value="Size"/>
      <datePattern value="yyyyMMdd"/>
      <maxSizeRollBackups value="5"/>
      <maximumFileSize value="100KB"/>
      <staticLogFileName value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%d [%t] %-5p %c - %m%n"/>
      </layout>
    </appender>
  </log4net>
</configuration>

In AssemblyInfo.cs
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

On top of the Service class
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]

In the Static Constructor (mainly due to fiddling around)
string configFile = ConfigurationManager.AppSettings["log4net-config-file"];
XmlConfigurator.Configure(new FileInfo(configFile));
logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

In the non-static constructor:
logger.Info("Hello world!");

Wcf服务网站项目:

 Web.Config is basically the same as App.Config of service library

 <serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true"/>

到目前为止我尝试过的是:

There is no output in DebugView and nothing about log4net in the IIS configured logs.

How can I find out what is wrong?

What can I do to find out why it is not working?

Mare Infinitus

The problem was:

When hosted in IIS, the log4net config file was searched in the current directory of IIS, which is in my case:

C:\Windows\System32\inetsrv

But the config file is saved in the physical path of the WCF service.

So I had in the Web.config

<appSettings>
    <add key="log4net_config" value="log4net.config" />
</appSettings>

And in the Constructor of the Service-class I call

var fullPath = ConfigurationManager.AppSettings["log4net_config"];

var physicalPath = System.Web.Hosting.HostingEnvironment.MapPath("/");

// to keep it compatible with self hosting 
if (physicalPath != null)
{
    fullPath = Path.Combine(physicalPath, fullPath);
}

var fileInfo = new FileInfo(fullPath);

XmlConfigurator.ConfigureAndWatch(fileInfo);

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用log4net和IHttpModule与WCF服务

来自分类Dev

Web服务中的Log4net

来自分类Dev

在iis7中托管net.tcp wcf服务

来自分类Dev

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

来自分类Dev

无法使用WCF服务(托管在IIS中)

来自分类Dev

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

来自分类Dev

在IIS 7中使用net.tcp绑定托管WCF服务(无法从外部访问)

来自分类Dev

在IIS 7中使用net.tcp绑定托管WCF服务(无法从外部访问)

来自分类Dev

log4net到类库

来自分类Dev

IIS中托管的WCF服务中的DbContext生命周期

来自分类Dev

WCF:在IIS和Windows服务中托管之间的区别

来自分类Dev

托管在VS2010中在IIS上创建的WCF服务

来自分类Dev

向用户公开IIS中托管的WCF服务

来自分类Dev

无法从ASP NET应用程序中托管的WCF数据服务访问数据库

来自分类Dev

MySQL Appender不在Log4Net中的数据库中插入数据

来自分类Dev

Log4Net在SQL Server数据库中不写入任何内容

来自分类Dev

IIS托管WCF服务和AppDomain

来自分类Dev

IIS 托管的 WCF 服务无法启动进程

来自分类Dev

WCF客户端无法通过ServiceHost连接到IIS中托管的WCF服务吗?

来自分类Dev

WCF客户端无法通过ServiceHost连接到IIS中托管的WCF服务吗?

来自分类Dev

Log4Net不会从类库登录

来自分类Dev

使用log4net作为类库?

来自分类Dev

Log4net不登录到数据库

来自分类Dev

Windows服务中托管的WCF服务

来自分类Dev

如果服务托管在IIS上,如何修改WCF服务配置?

来自分类Dev

IIS上托管的服务中的WCF通用类型解析器

来自分类Dev

IIS 7.5中的WCF服务托管-由于扩展名配置,无法提供您请求的页面

来自分类Dev

如何在IIS中托管没有SVC文件的WCF服务

来自分类Dev

log4net AdoNetAppender在数据库中插入“ Null”字符串而不是null

Related 相关文章

  1. 1

    使用log4net和IHttpModule与WCF服务

  2. 2

    Web服务中的Log4net

  3. 3

    在iis7中托管net.tcp wcf服务

  4. 4

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

  5. 5

    无法使用WCF服务(托管在IIS中)

  6. 6

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

  7. 7

    在IIS 7中使用net.tcp绑定托管WCF服务(无法从外部访问)

  8. 8

    在IIS 7中使用net.tcp绑定托管WCF服务(无法从外部访问)

  9. 9

    log4net到类库

  10. 10

    IIS中托管的WCF服务中的DbContext生命周期

  11. 11

    WCF:在IIS和Windows服务中托管之间的区别

  12. 12

    托管在VS2010中在IIS上创建的WCF服务

  13. 13

    向用户公开IIS中托管的WCF服务

  14. 14

    无法从ASP NET应用程序中托管的WCF数据服务访问数据库

  15. 15

    MySQL Appender不在Log4Net中的数据库中插入数据

  16. 16

    Log4Net在SQL Server数据库中不写入任何内容

  17. 17

    IIS托管WCF服务和AppDomain

  18. 18

    IIS 托管的 WCF 服务无法启动进程

  19. 19

    WCF客户端无法通过ServiceHost连接到IIS中托管的WCF服务吗?

  20. 20

    WCF客户端无法通过ServiceHost连接到IIS中托管的WCF服务吗?

  21. 21

    Log4Net不会从类库登录

  22. 22

    使用log4net作为类库?

  23. 23

    Log4net不登录到数据库

  24. 24

    Windows服务中托管的WCF服务

  25. 25

    如果服务托管在IIS上,如何修改WCF服务配置?

  26. 26

    IIS上托管的服务中的WCF通用类型解析器

  27. 27

    IIS 7.5中的WCF服务托管-由于扩展名配置,无法提供您请求的页面

  28. 28

    如何在IIS中托管没有SVC文件的WCF服务

  29. 29

    log4net AdoNetAppender在数据库中插入“ Null”字符串而不是null

热门标签

归档