簡體   English   中英

如何在沒有配置的情況下在log4net中使用AdoAppender

[英]How to use AdoAppender in log4net without config

我對log4net有疑問。 如何在C#中使用ADOAppender類。 我必須捕獲數據庫中的日志。 我已經嘗試通過配置文件中的配置。並且工作正常。 我需要在代碼中配置它。

我已經嘗試使用以下代碼。並且無法正常工作

        Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();

        MemoryAppender memory = new MemoryAppender();
        AdoNetAppender adoappender = new AdoNetAppender();
        AdoNetAppenderParameter adoapppar = new AdoNetAppenderParameter();
        AdoNetAppenderParameter adoapppar1 = new AdoNetAppenderParameter();
        AdoNetAppenderParameter adoapppar2 = new AdoNetAppenderParameter();
        AdoNetAppenderParameter adoapppar3 = new AdoNetAppenderParameter();
        AdoNetAppenderParameter adoapppar4 = new AdoNetAppenderParameter();
        AdoNetAppenderParameter adoapppar5 = new AdoNetAppenderParameter();

        PatternLayout patternLayout = new PatternLayout();

        adoappender.ConnectionString = "Data Source=.;Initial Catalog=xmltest;Integrated Security=false;User ID=sa;Password=dbadmin;";
        adoappender.ConnectionType = "System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
        adoappender.ReconnectOnError = true;

        adoappender.CommandType = CommandType.StoredProcedure;
        adoappender.CommandText = "DBO.splog4nettest";
        adoappender.BufferSize = 1;

        adoapppar.ParameterName = "@log_date";
        adoapppar.DbType = DbType.DateTime;
        adoapppar.Layout = new Layout2RawLayoutAdapter(patternLayout);
        patternLayout.ConversionPattern = "%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}";
        patternLayout.ActivateOptions();
        adoappender.AddParameter(adoapppar);

        adoapppar1.ParameterName = "@thread";
        adoapppar1.DbType = DbType.String;
        adoapppar1.Size = 255;
        adoapppar1.Layout = new Layout2RawLayoutAdapter(patternLayout);
        //adoapppar.Layout = (IRawLayout)patternLayout;
        patternLayout.ConversionPattern = "%thread";
        patternLayout.ActivateOptions();
        adoappender.AddParameter(adoapppar1);

        adoapppar2.ParameterName = "@log_level";
        adoapppar2.DbType = DbType.String;
        adoapppar2.Size = 50;
        adoapppar2.Layout = new Layout2RawLayoutAdapter(patternLayout);
        //adoapppar.Layout = (IRawLayout)patternLayout;
        patternLayout.ConversionPattern = "%level";
        patternLayout.ActivateOptions();

        memory.ActivateOptions();
        hierarchy.Root.AddAppender(memory);

        hierarchy.Root.Level = Level.Info;
        hierarchy.Configured = false;

        log4net.Config.BasicConfigurator.Configure();

您尚未將AdoAppender添加到Root

hierarchy.Root.AddAppender(adoappender);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM