MVC

新建WEB项目

web.xml

<context-param>

       <param-name>contextConfigLocation</param-name>

       <param-value>/WEB-INF/spring-servlet.xml</param-value>

    </context-param>

    <listener>

       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

    </listener>

 

    <servlet>

       <servlet-name>spring</servlet-name>

       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

       <load-on-startup>1</load-on-startup>

    </servlet>

    <servlet-mapping>

       <servlet-name>spring</servlet-name>

       <url-pattern>*.do</url-pattern>

       <!-- url配置为/,不带文件后缀,会造成其它静态文件(jscss)不能访问。如配为*.do,则不影响静态文件的访问 -->

    </servlet-mapping>

posted @ 2011-08-22 17:33 leven-studio 阅读(10) 评论(0) 编辑

log4net是apache组织开发的日志组件, 同其姐妹log4j一样, 是一个开源项目. 可以以插件的形式应用在你的系统中. 下面仅说明如何应用在web forms项目中. 做为主要的日志输出组件.

数据库的配置


if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[EventLog]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[EventLog]
GO

CREATE TABLE [dbo].[EventLog] (
    [Log.id] [int] IDENTITY (1, 1) NOT NULL ,
    [Log.date] [datetime] NULL ,
    [Log.thread] [varchar] (255)  NULL ,
    [Log.level] [varchar] (50)  NULL ,
    [Log.logger] [varchar] (255)  NULL ,
    [Log.message] [varchar] (4000)  NULL ,
    [Log.exception] [varchar] (2000)  NULL
) ON [PRIMARY]
GO



项目配置


1. 首先你应该下载log4net.dll并引入到你的项目References中.
  http://www.apache.org
  下载地址 http://logging.apache.org/log4net/download.html
2. 需要修改你的global.asa.cs. 配置application对象启动的时候加载log4net配置. 这一步是不可以缺少的.

添加Global.asax
修改以下内容

void Application_Start(object sender, EventArgs e)
   {
       // 在应用程序启动时运行的代码
       log4net.Config.DOMConfigurator.Configure();
   }


配置Web.Config文件

3.在web.cofig根节点 configuration 中加入如下section:

<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net debug="false">

    <!--
        记录方式选择
        级别
    -->
    <root>
      <level value="ALL" />
      <appender-ref ref="ADONetAppender" />
      <appender-ref ref="LogFileAppender" />
    </root>

    <!--
        日志
        SQL记录
        设置数据库连接
        设置缓存数量
    -->
    <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
      <bufferSize value="1" />
      <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      <!--SQL Server Connetion Setting-->
      <connectionString value="server=.;database=xxxxxxx;user id=sa;password=" />
      <commandText value="INSERT INTO EventLog ([Log_Date],[Log_Thread],[Log_Level],[Log_Logger],[Log_Message],[Log_Exception]) VALUES (@log_date, @log_thread, @log_level, @log_logger, @log_message, @log_exception)" />
      <parameter>
        <parameterName value="@log_date" />
        <dbType value="DateTime" />
        <layout type="log4net.Layout.RawTimeStampLayout" />
      </parameter>
      <parameter>
        <parameterName value="@log_thread" />
        <dbType value="String" />
        <size value="255" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%thread" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@log_level" />
        <dbType value="String" />
        <size value="50" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%level" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@log_logger" />
        <dbType value="String" />
        <size value="255" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%logger" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@log_message" />
        <dbType value="String" />
        <size value="4000" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%message" />
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@log_exception" />
        <dbType value="String" />
        <size value="2000" />
        <layout type="log4net.Layout.ExceptionLayout" />
      </parameter>
    </appender>

    <!--
          文本记录
          设置记录文件路径
      -->
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
      <!--记录位置-->
      <param name="File" value="XxxxApplication.log.txt" />
      <param name="datePattern" value="MM-dd HH:mm" />
      <param name="AppendToFile" value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
      </layout>
    </appender>
    <appender name="HttpTraceAppender" type="log4net.Appender.ASPNetTraceAppender" >
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
      </layout>
    </appender>
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
      </layout>
    </appender>  

  </log4net>

  <appSettings/>
  <connectionStrings/>

 
以上定义了多个appender. 简单来说, 每一个 appender 都是一种输出介质.
root节点指定了选用的 appender. 本例选用了LogFileAppender. (文本文件输出). 在Appender定义中定义了输出的格式. 和目标文本文件所在位置. (起始位置是应用程序根目录. (web.config所在目录).

运行

到目前位置就配置好了log4net. 可以在我们的应用中直接使用了.
以下说明应用方法:
要输出日志, 必须首先得到带有一个别名的log.
使用以下命令

随便建立一个web页,插入以下代码
(可以直接使用GetType得到当前类名)

        log4net.ILog log = log4net.LogManager.GetLogger(this.GetType());
        log.Info("info");
        log.Error("error");
        log.Debug("debug");
        log.Warn("warn");

即可输出日志.

调试后可查找应用程序根目录下是否已经自动创建XxxxxApplication.log.txt文本文件.以及是否正确输出了日志.

log4net是一个非常完善的日志组件. 有着强大的可配置性. 有助于提高开发效率.

posted @ 2009-10-15 11:39 leven-studio 阅读(105) 评论(0) 编辑