ASP.Net日志记录组件XCLNetLogger发布啦

下载地址:https://github.com/xucongli1989/XCLNetLogger/releases

项目地址:https://github.com/xucongli1989/XCLNetLogger

该程序主要是向数据库中记录代码中的日志信息,配置相当简单,当然,功能也简单,献给合适的人。

By:XCL @2015 mail:[email protected] http://blog.csdn.net/luoyeyu1989

使用环境

  • SQL SERVER
  • Windows
  • Asp.Net(默认4.5)

基本配置

建立Log.config配置文件,其内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<XCLNetLoggerConfig>
<DBConfig>
<SQLType>MSSQL</SQLType>
<ConnectionString>server=XCL-PC\MSSQL2008;database=xxxx;uid=xxxx;pwd=xxxx</ConnectionString>
<CommandText>EXEC [SysLog_ADD] @LogLevel,@LogType,@RefferUrl,@Url,@Code,@Title,@Contents,@ClientIP,@Remark,@CreateTime</CommandText>
<CommandTimeOut>3</CommandTimeOut>
<NeedThrowException>true</NeedThrowException>
<IsAsync>false</IsAsync>
</DBConfig>
<ParameterList>
<Parameter>
<Name>@LogLevel</Name>
<DBType>VarChar</DBType>
<Size>50</Size>
</Parameter>
<Parameter>
<Name>@LogType</Name>
<DBType>VarChar</DBType>
<Size>50</Size>
</Parameter>
<Parameter>
<Name>@RefferUrl</Name>
<DBType>VarChar</DBType>
<Size>1000</Size>
</Parameter>
<Parameter>
<Name>@Url</Name>
<DBType>VarChar</DBType>
<Size>1000</Size>
</Parameter>
<Parameter>
<Name>@Code</Name>
<DBType>VarChar</DBType>
<Size>50</Size>
</Parameter>
<Parameter>
<Name>@Title</Name>
<DBType>VarChar</DBType>
<Size>500</Size>
</Parameter>
<Parameter>
<Name>@Contents</Name>
<DBType>VarChar</DBType>
<Size>4000</Size>
</Parameter>
<Parameter>
<Name>@ClientIP</Name>
<DBType>VarChar</DBType>
<Size>50</Size>
</Parameter>
<Parameter>
<Name>@Remark</Name>
<DBType>VarChar</DBType>
<Size>2000</Size>
</Parameter>
<Parameter>
<Name>@CreateTime</Name>
<DBType>DateTime</DBType>
</Parameter>
</ParameterList>
</XCLNetLoggerConfig>

该配置信息对应的实体如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace XCLNetLogger.Model
{
/// <summary>
/// XCLNetLogger配置信息
/// </summary>
[Serializable]
public class XCLNetLoggerConfig
{
    /// <summary>
    /// DB配置信息
    /// </summary>
    public XCLNetLogger.Model.DBConfig DBConfig { get; set; }

    /// <summary>
    /// 参数信息
    /// </summary>
    public List<XCLNetLogger.Model.Parameter> ParameterList { get; set; }
}

/// <summary>
/// DB配置
/// </summary>
[Serializable]
public class DBConfig
{
    private int _commandTimeOut = 30;
    private bool _isAsync = true;

    /// <summary>
    /// 数据库类型
    /// </summary>
    public XCLNetLogger.Config.LogConfig.SQLType SQLType { get; set; }

    /// <summary>
    /// 数据库连接串
    /// </summary>
    public string ConnectionString { get; set; }

    /// <summary>
    /// SQL
    /// </summary>
    public string CommandText { get; set; }

    /// <summary>
    /// sql执行超时时间 (默认30s)
    /// </summary>
    public int CommandTimeOut
    {
        get { return this._commandTimeOut; }
        set { this._commandTimeOut = value; }
    }

    /// <summary>
    /// 是否需要抛出异常(默认false)
    /// </summary>
    public bool NeedThrowException { get; set; }

    /// <summary>
    /// 是否异步执行写入日志(默认true)
    /// </summary>
    public bool IsAsync
    {
        get { return this._isAsync; }
        set { this._isAsync = value; }
    }
}

/// <summary>
/// 参数配置
/// </summary>
[Serializable]
public class Parameter
{
    /// <summary>
    /// 参数名
    /// </summary>
    public string Name { get; set; }

    /// <summary>
    /// 参数类型
    /// </summary>
    public System.Data.SqlDbType DBType { get; set; }

    /// <summary>
    /// 参数长度
    /// </summary>
    public int? Size { get; set; }
}
}

开始使用:

1、在项目中引用XCLNetLogger.dll
2、将上面的配置文件放到项目中
    在Global中的Application_Start添加如下代码以初始化配置信息
    XCLNetLogger.Config.LogConfig.SetConfig(Server.MapPath("~/Config/Log.config"));
3、最后在程序代码中,可以直接使用了:
    XCLNetLogger.Log.WriteLog(logModel);//logModel可以在代码中转到定义自己看哦
4、报错了吧?别忘记创建日志表了,最好使用存储过程记日志

CREATE TABLE [dbo].[SysLog](
[SysLogID] [bigint] IDENTITY(1,1) NOT NULL,
[LogLevel] [varchar](50) NOT NULL,
[LogType] [varchar](50) NULL,
[RefferUrl] [varchar](1000) NULL,
[Url] [varchar](1000) NULL,
[Code] [varchar](50) NULL,
[Title] [varchar](500) NULL,
[Contents] [varchar](4000) NULL,
[ClientIP] [varchar](50) NULL,
[Remark] [varchar](2000) NULL,
[CreateTime] [datetime] NOT NULL,
 CONSTRAINT [PK_SYSLOG] PRIMARY KEY CLUSTERED
(
[SysLogID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

CREATE PROCEDURE [dbo].[SysLog_ADD]
@LogLevel varchar(50),
@LogType varchar(50),
@RefferUrl varchar(1000),
@Url varchar(1000),
@Code varchar(50),
@Title varchar(500),
@Contents varchar(4000),
@ClientIP varchar(50),
@Remark varchar(2000),
@CreateTime datetime

 AS
INSERT INTO [SysLog](
[LogLevel],[LogType],[RefferUrl],[Url],[Code],[Title],[Contents],[ClientIP],[Remark],[CreateTime]
)VALUES(
@LogLevel,@LogType,@RefferUrl,@Url,@Code,@Title,@Contents,@ClientIP,@Remark,@CreateTime
)
时间: 2024-10-24 13:09:25

ASP.Net日志记录组件XCLNetLogger发布啦的相关文章

Elmah 日志记录组件

[http://www.cnblogs.com/chenkai/archive/2013/01/26/2877855.html] 常在服务器端处理用户请求时.特别是针对Web应用程序.当出现异常是可以根据日志操作记录还原异常出现时操作步骤.而记录异常堆栈信息判断问题出现问题位置. 为了跟踪和记录服务器行为.特别是针对出现异常时构建简单.统一的异常处理模式就显得尤为重要. 如果有一个基础的架构用来记录服务器端中日志和事件.那么对于调试和在问题的解决就变得更加简单直接.针对日志记录.可能针对大部分开

C#Log4net日志记录组件的使用

一.Log4Net介绍 Log4net是基于.NET开发的一款非常著名的记录日志开源组件.它通过一套XML配置的日志引擎,将日志分不同的等级,分别是:FATAL . ERROR. WARN. INFO . DEBUG.ALL(允许所有的日志请求)和OFF(拒绝所有的日志请求),缺省为DEBUG,前五个可以看到和我们平常在调试应用程序的出错有点类似,在编译器中也会留下如错误.警告之类的提示信息,它们的错误级别不断的降低. 我们接着看Log4net的核心组成部分,Log4net主要由五个部分组成,分

MVC使用 Elmah 日志记录组件

简介 ELMAH(Error Logging Modules and Handlers)错误日志记录模块和处理程序,是一种应用广泛的错误日志工具是完全可插拔.它可以动态添加到一个正在运行的ASP.NET Web应用程序,甚至是一台机器上的所有ASP.NET Web应用程序,而无需重新编译或重新部署. ELMAH既支持ASP.NET Web Forms 又支持 ASP.NET MVC.你可以对ELMAH进行配置来存储各种不同的错误(XML文件,事件日志,Access数据库,SQL数据库,Oracl

以HTML为表现的日志记录组件

关于日志记录,如果你不想随用随写,又不想用log4net的话,也许你可以了解一下这个! 我也是个很懒的人,程序上的东西,只要别人写好了,而且自己用着爽,绝不做重复的coding.这个组件的起源是因为感觉log4net太强大太复杂(对我来说真是这样),当我想用log4net的时候,看到配置我都吓尿n次了,而这个时候心中又突发奇想,用HTML来做日志的表现!理由有二,一是HTML和CSS大家都会,二是可以实现很好的可读可视性. 一.配置文件说明 <?xml version="1.0"

Log4Net异常日志记录在asp.net mvc3.0的应用

前言 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是简单的介绍如何在Visual Studio2010(Asp.Net Mvc3.0)中使用log4net快速创建系统日志,如何扩展以输出自定义字段. 用户可以从http://logging.apache.org/log4net/下载log4net的源代码.解压软件包后,在解压的src目录下将log4net.sln载入Visual

log4net日志记录

这里是接着上一篇来优化的,上篇:ASP.NET MVC中错误日志信息记录 log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件,数据库,EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题. 1.引用log4net.dll bin\net\2.0\release,不要引用debug版本 2.在Web.Config添加配置 把下面配置信息加到web.config中 Log4Net配置 <configuration> <co

.NET日志记录之——log4net划重点篇

.NET日志记录之--log4net划重点篇 1.概述 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介. 2.Log4net的主要组成部分 2.1 Appenders Appenders用来定义日志的输出方式,即日志要写到那种介质上去.较常用的Log4net已经实现好了,直接在配置文件中调用即可,可参见上面配置文件例子:当然也可以自己写一个,需要从log4net.Appender.Appen

也用 Log4Net 之将日志记录到数据库的配置 (一)

也用 Log4Net  之将日志记录到数据库的配置 (一) 前段时间我一直想做一个通用一点的日志记录系统,可以便于不同的业务组调用进行日志记录及分析.本来打算着自己下手写一个,后面发现各业务组可能会需要不同的记录方式,比如利用数据库来记录,用txt的文件形式来记录,当然,这些都是最常用的记录方式.而且不同的业务组都希望有自己的记录数据表,不希望和其他业务组的数据混在一起.于是我先前设想的架构方式也就付之一炬了,因为不够灵活,而且实现难度大.周期长.恰在此时想起了之前做项目的时候用的 Log4Ne

Phalcon 日志记录(Logging)

Phalcon提供了一个日志记录组件即 Phalcon\Logger. 我们可以使用此组件输出日志到不同的流中,如文件,系统日志等. 这个组件还提供了其它的功能如日志事务(类似于数据库的事务), 配置选项, 还可以输出不同的格式,另外还支持多种过滤器. Phalcon\Logger 提供了多种日志记录方式,从调试程序到跟踪应用的执行以满足应用的需求. 适配器(Adapters)? 此组件使用不同的流适配器来保存日信息. 我们可以按需使用适配器.支持的适配器如下: 适配器 描述 接口 File 保