65.9K
CodeProject 正在变化。 阅读更多。
Home

SharePoint 2007 - Log4net - 用户控件 - Smart Part

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.40/5 (2投票s)

2009 年 3 月 3 日

CPOL

2分钟阅读

viewsIcon

26003

配置 SharePoint 2007 的 log4net

引言

对于那些在 .NET 应用程序中使用过 Log4net 的朋友们,你们也可以在 SharePoint 的自定义用户控件中使用它。

在继续操作之前,你需要为你的用户控件提供某种包装。你可以自己开发,也可以下载一个 WebPart 来提供此功能。

我们下载了 SmartPart 来提供此功能。下载和安装说明可以在 这里 找到。

Log4net 的最新版本可以在 这里 找到。

在 SharePoint 中安装 Log4Net

步骤 1 

log4net.dll 添加到你正在使用的 SharePoint 实例的 bin 目录中。我们的站点安装在:C:\inetpub\wwwroot\wss\VirtualDirectories\443\bin

步骤 2

修改目标 SharePoint 实例的 web.config 文件。

将以下内容添加到 web.config 文件的 <configuration><configsections> 部分

<section name="log4net" 
	type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>

<system.web> 部分之前添加以下内容

<log4net>
  <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
   <param name="File" value="C:\\logs\\RollingWebPart.log"/>
    <param name="AppendToFile" value="true"/> <param name="RollingStyle" value="Size"/>
    <param name="MaxSizeRollBackups" value="30"/>
    <param name="MaximumFileSize" value="100KB"/>
    <param name="StaticLogFileName" value="true"/>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] 
		%-5level %logger [%property{NDC}] - %message%newline"/>
    </layout>
  </appender>
  <logger name="LogIT">
     <level value="DEBUG"/>
     <appender-ref ref="RollingFileAppender"/>
  </logger>
</log4net>

步骤 3

将以下内容添加到位于与 web.config 文件相同的虚拟目录路径中的 global.aspx 文件中。 在我们的安装中,它位于:c:\inetpub\wwwroot\wss\VirtualDirectories\443

<%@ Import Namespace="log4net" %>
<%@ Import Namespace="log4net.config" %>

<script language="VB" runat="server">
Protected Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) 
  log4net.Config.XmlConfigurator.Configure()
End Sub
</script>  

步骤 4

现在所有配置步骤都已完成。下一步是将你的用户控件部署到 SharePoint 环境中。

请注意:我们无法部署带有代码隐藏文件(code-behind)的用户控件。 我们的所有开发都在 ascx 文件的正文中进行。 

下面是一个测试用户控件的示例。

注意 log4net 命名空间的 import 语句和 Ilog 对象。

<%@ Control Language="vb" AutoEventWireup="false" %>
<%@ Import Namespace="log4net" %>
<%@ Import Namespace="log4net.Config" %>

<script runat="server">

  Private Shared ReadOnly log As ILog = LogManager.GetLogger("LogIT")
  Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)

     Label1.Text = TextBox1.Text

     log.Info(TextBox1.TeXT)
  End Sub
</script>

<asp:Button ID="Button1"
   runat="server"
   Text="Button"
   onclick="Button1_Click" />


<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

<br />

<asp:Label ID="Label1" runat="server"></asp:Label>

将用户控件部署到你的 SharePoint 环境中(我们一直在讨论的同一个虚拟目录)。

创建你在步骤 2 中引用的 logs 文件夹

<param name="File" value="C:\\logs\\RollingWebPart.log"/>

在你的 SharePoint 服务器上执行 iisreset ,你应该就可以正常使用了!

请随时提出任何建议,因为我们是 SharePoint 自定义开发的初学者。

历史

  • 2009 年 3 月 3 日:初始发布
© . All rights reserved.