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






3.40/5 (2投票s)
配置 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 日:初始发布