日志写入文件,写入sqlserver数据库(自定义参数)
来源:互联网 发布:淘宝客服电话人工按几 编辑:程序博客网 时间:2024/06/13 09:26
日志写入文件,写入sqlserver数据库(自定义参数),成功例子
1.配置文件
<?xml version="1.0" encoding="utf-8"?>
<!--
有关如何配置 ASP.NET 应用程序的详细消息,请访问
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler" /><!--写入文件-->
<section name="log4netInsertDatabase" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<!-- This section contains the log4net configuration settings -->
<log4net>
<root>
<level value="ALL" name="myLogger" />
<appender-ref ref="rollingFile" /><!--写入文件-->
<appender-ref ref="ADONetAppender"/>
</root>
<!--写入文件-->
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="D:\log.txt" />
<param name="AppendToFile" value="false" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyy.MM.dd" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
<param name="Header" value="header" />
<param name="Footer" value="footer" />
</layout>
</appender>
<!--写入文件-->
<appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender,log4net">
<!--BufferSize为缓冲区大小,只有日志记录超1条才会一块写入到数据库-->
<bufferSize value="1"/>
<!--或写为<param name="BufferSize" value="10" />-->
<!--引用-->
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<!--连接数据库字符串-->
<connectionString value="server=192.168.21.97;database=GenrerConfigWebWaterConservancy;uid=sa;pwd=aA123456;MultipleActiveResultSets=True"/>
<!--插入到表Log-->
<commandText value="INSERT INTO [Log] ([UserID],[RTime],[UserIP],[Operate]) VALUES (@UserID,@RTime, @UserIP, @Operate)"/>
<!--日志类型,这里均为3-->
<parameter>
<parameterName value="@UserID"/>
<dbType value="Int32"/>
<layout type="WebApplication1.MyLayout, WebApplication1">
<param name="ConversionPattern" value="%property{UserID}"/>
<!--//注意这里,当用到property时,就表明这是用户自定义的字段属性啦,是log4net中所没有提供的字段。其中MyLayout是自定义属性所在的类,
LogComponent是类所在的命名空间,这是我们自己要写的部分,将在下面介绍。-->
</layout>
</parameter>
<!--日志记录时间,RawTimeStampLayout为默认的时间输出格式 -->
<parameter>
<parameterName value="@RTime"/>
<dbType value="DateTime"/>
<layout type="log4net.Layout.RawTimeStampLayout"/>
</parameter>
<!--计算机IP-->
<parameter>
<parameterName value="@UserIP"/>
<dbType value="String"/>
<size value="50"/>
<layout type="WebApplication1.MyLayout, WebApplication1">
<param name="ConversionPattern" value="%property{UserIP}"/>
</layout>
</parameter>
<!---->
<parameter>
<parameterName value="@Operate"/>
<dbType value="String"/>
<size value="50"/>
<layout type="WebApplication1.MyLayout, WebApplication1">
<param name="ConversionPattern" value="%property{Operate}"/>
</layout>
</parameter>
</appender>
<logger name="Log4NetTest.LogTest">
<level value="DEBUG" />
<appender-ref ref="rollingFile" />
<appender-ref ref="coloredConsoleApp" />
<appender-ref ref="SystemEvent" />
</logger>
</log4net>
</configuration>
2. layout文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using log4net.Layout;
namespace WebApplication1
{
public class MyLayout : PatternLayout
{
public MyLayout()
{
this.AddConverter("property", typeof(MyMessagePatternConverter));
}
}
}
3.实体类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebApplication1
{
public class LogContent
{
public LogContent(int UserID, DateTime RTime, string UserIP, string Operate)
{
_UserID = UserID;
_RTime = RTime;
_UserIP = UserIP;
_Operate = Operate;
}
int _UserID;
/// <summary>
///用户ID
/// </summary>
public int UserID
{
get { return _UserID; }
set { _UserID = value; }
}
DateTime _RTime;
/// <summary>
/// 日志分类描述,自定义
/// </summary>
public DateTime RTime
{
get { return _RTime; }
set { _RTime = value; }
}
string _UserIP;
/// <summary>
/// 计算机IP
/// </summary>
public string UserIP
{
get { return _UserIP; }
set { _UserIP = value; }
}
string _Operate;
/// <summary>
///
/// </summary>
public string Operate
{
get { return _Operate; }
set { _Operate = value; }
}
}
}
4、程序调用
protected void Page_Load(object sender, EventArgs e)
{
log.Debug("这是我在使用Log4Net");
}
protected void Button1_Click(object sender, EventArgs e)
{
log4net.ILog log = log4net.LogManager.GetLogger("myLogger");
DateTime dt= DateTime.Now;
log.Info(new LogContent(1,dt,"10.1.0.111","dsdfsdfsdf"));
}
- 日志写入文件,写入sqlserver数据库(自定义参数)
- Java 自定义日志写入
- asp.net利用log4net写入日志到SqlServer数据库
- log4j日志写入数据库
- log4j日志写入数据库
- 写入日志文件
- java写入日志文件
- 写入日志文件
- Log4Net 写入日志文件
- log4net配置写入文本和写入数据库(sqlserver-sqlclient,mysql-odbc) 传入自定义业务对象
- log4j(二)将日志写入数据库
- 自定义类写入文件
- 将web日志写入数据库
- 将Log4j日志写入数据库
- java log4j日志 写入数据库
- 设置Log4j 的properties文件,将日志写入数据库
- ace日志无法写入文件
- ogre中显式写入日志文件
- def
- xcode4: Linker error: Directory not found for option
- 设计模式6大原则:开闭原则
- 服务器莫名多次连不上,竟然是待机了。。。电源管理设置一下就ok了。。。
- Delphi中取得程序版本号
- 日志写入文件,写入sqlserver数据库(自定义参数)
- Java基础之continue与break区别
- 外来乱码控件的注册
- usaco 5.1 Fencing the Cows(凸包模板题)
- Linux中的SSH终端乱码问题的解决
- des
- 大端小端学习
- StarCraft开发:如何避免链表引起的游戏崩溃
- 设计模式6大原则:迪米特法则