探索與發現

          研究java技術

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            83 隨筆 :: 0 文章 :: 109 評論 :: 0 Trackbacks

          I had previously written about using lo4net from Sharepoint
          by including all the configuration settings in the code.

          This certainly works, and its very easy.

          It would be good to be able to use a standard log4net configuration
          file though. In fact that would be great.

          And you can.

          FileInfo configFile = new FileInfo(_LOG4NET_CONFIGURATIONFILE);
          XmlConfigurator.Configure(configFile);

          It is that simple.

          In the code above _LOG4NET_CONFIGURATIONFILE is a configuration setting I read from the Sharepoint configuration file, but you can hardcode it instead.           

          You have to make sure that you put the configuration file in a location that Sharepoint can read from .

          One such place is

          C:\Inetpub\wwwroot\wss\VirtualDirectories\80

          I find it tidy to keep the log4net file next to the web.config file as well.

          You can also read from the web.config file that Sharepoint uses with this code:

          Configuration config = null;
          config = WebConfigurationManager.OpenWebConfiguration("/", "Sharepoint - 80");

           

           

           

          Phil Haack explains configuring log4net in asp.net 2.0 application. We can keep the configuration in the web.config, and we need to tell the log4net, that where we kept the configuration in the Application_Start() event using XmlConfiguration.Configure() menthod. In asp.net we can add a Global.asax and keep this code in Global.asax.cs.

          But how can we do this in Sharepoint?

          Every site collection we create in sharepoint, creates a globals.asax file and keeps in the webapp root directory. The asax files contains the following code.

          <%@ Assembly Name="Microsoft.SharePoint"%>
          <%@ Application Language="C#" Inherits="Microsoft.SharePoint.ApplicationRuntime.SPHttpApplication" %>

          We can add a inline code in the global.asax file as follows,

          <%@ Assembly Name="Microsoft.SharePoint"%>
          <%@ Assembly Name="log4net, version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821" %>
          <%@ Application Language="C#" Inherits="Microsoft.SharePoint.ApplicationRuntime.SPHttpApplication" %>
          <%@ Import Namespace="log4net.Config" %>

          <script runat="server">
          void Application_Start(Object sender, EventArgs e)
          {

          // Configure log4Net, to take its configuration from the web.config file.
          XmlConfigurator.Configure();
          }
          </script>

          or we can derive a class from SPHttpApplication and add the Application_Start() method.

           

          posted on 2009-02-11 07:09 蜘蛛 閱讀(361) 評論(0)  編輯  收藏 所屬分類: 日?,嵤?/a>
          主站蜘蛛池模板: 奉贤区| 那坡县| 克什克腾旗| 富顺县| 贞丰县| 马鞍山市| 平武县| 津南区| 望奎县| 东方市| 四会市| 广元市| 宝丰县| 梅河口市| 乃东县| 布拖县| 宜都市| 山西省| 八宿县| 曲水县| 安庆市| 集安市| 雅安市| 兴国县| 裕民县| 湖北省| 太白县| 宿迁市| 连平县| 彩票| 长宁区| 思南县| 河东区| 偏关县| 界首市| 瑞安市| 绥棱县| 乌拉特前旗| 上蔡县| 黎川县| 青阳县|