(转)log4net用在WebServices中

转自:http://www.cnblogs.com/geqinggao/archive/2013/02/01/Gerry.html

最近写一个WebServices要记录log,首当想到的当然是log4net.dll,我把原来WinFrom的配置拷贝过来,log记不了,嘛问题呢?

于是百度,Google,不少文章呢,有的说WebServices用不了log4net,有的贴出配置照操作还是不能记,哥来兴趣了,log4net不会这么不给力吧?研究了一番答案是否定的,log4net还是很给力的。

log4net用在WebServices上有几个地方需要配置:

1.配置Web.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>
  <log4net>
    <appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
      <param name="File" value="logs/error.log" />
      <param name="AppendToFile" value="true" />
      <param name="RollingStyle" value="Date" />
      <param name="DatePattern" value="yyyy.MM.dd" />
      <param name="StaticLogFileName" value="true" />
      <filter type="log4net.Filter.LevelRangeFilter">
        <acceptOnMatch value="true" />
        <levelMin value="ERROR" />
        <levelMax value="FATAL" />
      </filter>
      <maximumFileSize value="15MB" />
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%newline %d [%t] %-5p %c: %m%n" />
      </layout>
    </appender>
    <appender name="InfoRollingFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
      <param name="File" value="logs/info.log" />
      <param name="AppendToFile" value="true" />
      <param name="RollingStyle" value="Date" />
      <param name="DatePattern" value="yyyy.MM.dd" />
      <param name="StaticLogFileName" value="true" />
      <filter type="log4net.Filter.LevelRangeFilter">
        <acceptOnMatch value="true" />
        <levelMin value="DEBUG" />
        <levelMax value="WARN" />
      </filter>
      <maximumFileSize value="15MB" />
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%newline %d [%t] %-5p %c: %m%n" />
      </layout>
    </appender>
    <root>
      <priority value="DEBUG" />
      <appender-ref ref="ErrorRollingFileAppender" />
      <appender-ref ref="InfoRollingFileAppender" />
    </root>
  </log4net>
</configuration>

=====================

配置好了那该怎么使用呢?相信大家都会。

在.cs文件中加上下面:

private static ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

在.cs文件的构造函数中加上

XmlConfigurator.Configure();

然后就可以用下面方式调用了:

log.Info("log Info.");//记录在logs/info.log
log.Error("log Error.");//记录在logs/error.log
log.Fatal("log Fatal.");//记录在logs/error.log
log.Debug("log Debug.");//记录在logs/info.log

2.配置权限

当初我无法写log的问题,是因为没有配置IIS_IUSRS权限。如果你的Web.config都按照第1步配置好了,如果还不能记log,就在IIS中右键你的WebServices→Edit Permission...→Security找到你的IIS_IUSRS点击Edit...勾上Full control然后Apply.

如果上面两步你都完成了,恭喜你logs文件夹就会神奇的出现了。

小小疑问,上面的图片中error信息都是按天分开的,但是info.log是和在一起的。我在Window Services的App.config中同样的配置,info.log也是每天分开的,

不知道这是不是Web Services和Window Services的区别?

时间: 2024-09-24 00:09:23

(转)log4net用在WebServices中的相关文章

Log4Net 在多层项目中的使用小记

原文地址:http://www.cnblogs.com/zdh8675/p/3645556.html 这几天刚好在调整一个项目,把一些自己不是很清楚的东西先试验一下,这篇文章主要是对我在项目中需要使用Log4Net的一些记录.网上有很多相关的教程,但是各有各的说法,我结合我自己这个项目的需要,首先,项目是分多层的,假如每一层都需要加入日志记录,那该怎么办呢,下面是我的一些操作步骤,记录出来和大家分享一下,不足之处希望大家多拍板砖多多指教. 这个截图是我的当前项目的层次结构,首先在Common层先

asp.net mvc中用 log4net记录日志到数据库中

1.log4net官网配置相关,创建数据库 http://logging.apache.org/log4net/release/config-examples.html CREATE TABLE [dbo].[tbl_LogInfo]( [ID] [int] IDENTITY(1,1) NOT NULL, [LogTime] [datetime] NOT NULL, [Thread] [nvarchar](max) NOT NULL, [LogLevel] [nvarchar](max) NUL

Log4Net在Windows服务中不能记录日志 z

解决方案: 在Windows安装服务的“serviceProcessInstaller1”中修改Account属性为LocalSystem.见下图 后来查了一下这个Account属性 说白了还是权限的问题. 以下来自MSDN截图: public enum ServiceAccount 权限:LocalService > networkService > LocalSystem > User

WebServices中Xml的序列化

一.定义序列化实体类 [System.Xml.Serialization.XmlRoot("Custome_Xml_Root_Name")] //自定义生成的Xml根目录名称 public class Customer { [System.Xml.Serialization.XmlAttribute("Customer_Xml_Root_Atrribute_Name")] //自定义生产的Xml根目录属性名称 public int ID { get; set; }

WebServices中使用cxf开发日志拦截器以及自定义拦截器

首先下载一个cxf实例,里面包含cxf的jar包.我下的是apache-cxf-2.5.9 1.为什么要设置拦截器? 为了在webservice请求过程中,能动态操作请求和响应数据, CXF设计了拦截器. 2.拦截器分类 1. 按所处的位置分:服务器端拦截器,客户端拦截器 2. 按消息的方向分:入拦截器,出拦截器 3. 按定义者分:系统拦截器,自定义拦截器 3.拦截器API Interceptor(拦截器接口) AbstractPhaseInterceptor(自定义拦截器从此继承) Loggi

调用webservices中 枚举类型没有被序列化问题

引用服务后,代理类为自动为所有枚举类型生成了一个Bool类型相关字段,命名方式:比如枚举类名为“PayType”,生成的相关字段为“PayTypeSpecified”,此字段有何作用? PayTypeSpecified字段默认值为false,请求webservices的时候是不会序列化“PayType”这个字段的,当设定“PayTypeSpecified”为True的时候,就会被序列化了.

WebServices中使用Session

默认情况下,Asp.net使用cookie来管理会话状态.因此,Asp.net假设客户端存储了会话cookie并将它与每一个请求一并发回给客户端. /// <summary> /// Summary description for WebMethodSession /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiPr

在C#代码中应用Log4Net(一)简单使用Log4Net

首先让我们先把Log4Net跑起来,示例代码在文章最后面可以下载 1.先把Log4Net引入到工程中,为了演示方便,我们先建立一个winform程序.在程序的根目录下面,建立一个Libs文件夹,以便存放Log4Net的DLL文件. 2.进行一些简单的配置,先不讲配置文件的作用,大家照我写的输入.下面代码库的内容是在App.config文件中输入的,如果大家没有App.config文件,可以通过在解决方案中,添加新建项→应用程序配置文件,进行添加. <?xml version="1.0&qu

log4net 使用总结- (1)在ASP.NET MVC 中使用

1. 去官网下载log4net.dll,增加引用到站点下(你也可以通过nuget 安装) http://logging.apache.org/log4net/download_log4net.cgi 2. 在Web.config中增加配置(这里按日志文件输出) <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, lo