• log4net 文章集


    基本介绍(略)

    下载:
    http://logging.apache.org/log4net/downloads.html

    模式一览

    编号 设计模式 作用
    1 工厂方法 创建Logger和Plugin
    2 模板方法 在DoAppend中调用抽象的Append方法,这个方法在子类中实现
    3 桥接    使不同的形式的日志和不同记录方式的日志任意组合
    4 适配器 适配Layout和RawLayout
    5 职责链 事件过滤对象组成职责链
    6 原型 实现PluginCollection和AppenderCollection的复制
    7 迭代器 实现对PluginCollection和AppenderCollection元素的遍历访问

    log4net架构UML图

    Log4net 概貌

    Log4net结构(一)——Logger

    Log4net结构(二)——Repository,Appender,Layout


    log4net结构(三)——配置文件

    Log4Net Appender 之 ADONetAppender

    基本配置 

             上面配置中的第3行配置了日志中的缓存的收集的事件的最大数目。这里设置了100,日志缓存中的数目达到100时,Log就会将缓存的日志写入数据库,并清空缓存。当log4net关闭时,log4net会自动把日志写入数据库,尽管没有达到100。

            如果不配置BufferSize,那么默认值是512.

    数据库连接配置

            上面配置中的第4到第6行显示了数据库连接的配置。

            ConnectionType设置了使用什么类型的数据库连接,例子中使用的是SqlConnection,这里,ConnectionType需要的是继承自IDbConnection接口的类所在的Assembly的FullName。

            ConnectionString则是对应的数据连接的连接字符串。

            CommandText是SQL命令字符串,这里使用的是SQL语句,当然,也可以使用存储过程,如果使用存储过程,那么需要增加一项配置如下


    <Param name="CommandType" value="StoredProcedure"/>

    (例子下载)


    log4net 1.2.9 的配置及使用

    Using log4net

    查看程序集的FullName

    using System.Threading;

    using System.IO;
    using System.Reflection;
    using System.Reflection.Emit;
    using System.Configuration.Assemblies;

            
    private void Button2_Click(object sender, System.EventArgs e)
            
    {
                
    try
                
    {
                    AssemblyName myAssemblyName 
    = new AssemblyName();
                    myAssemblyName.CodeBase 
    = Server.MapPath("System.Data.dll");

                    Assembly[] myAssemblies 
    = Thread.GetDomain().GetAssemblies();

                    
    // Get the dynamic assembly named 'MyAssembly'. 
                    Assembly myAssembly = null;
                    
    for(int i = 0; i < myAssemblies.Length; i++)
                    
    {
                        
    if(String.Compare(myAssemblies[i].GetName().Name, "System.Data"== 0)
                            myAssembly 
    = myAssemblies[i];
                    }


                    
    if(myAssembly != null)
                    
    {
                        Response.Write(
    "<hr>");
                        Response.Write(myAssembly.GetName().FullName);
                        Response.Write(
    "<hr>");

                    }

                }

                
    catch(Exception ex)
                
    {
                    
    //Loggerlog4net l4 = new Loggerlog4net();
                    
    //l4.LogException("GetPublicKey",ex);
                }

            }

  • 相关阅读:
    ocilib(简介2)
    C++ Socket编程步骤 (转载)
    服务端和客户端的疑问
    var和public的区别
    vs2010如何设置能实现输入关键字的时候自动提示呢?
    ocilib(简介)
    iostream.h , iostream
    error C2110: cannot add two pointers
    Array 越界不报错的问题
    char* + int or char or ...
  • 原文地址:https://www.cnblogs.com/myx/p/182617.html
Copyright © 2020-2023  润新知