我对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();
答案 0 :(得分:0)
您还没有将AdoAppender添加到Root
hierarchy.Root.AddAppender(adoappender);