I have following code:
public class Log4NetSetup
{
public static void Setup()
{
#region log4net parameters
AdoNetAppenderParameter logDate = new AdoNetAppenderParameter()
{
ParameterName = "@log_date",
DbType = System.Data.DbType.DateTime,
Layout = new RawTimeStampLayout()
};
AdoNetAppenderParameter thread = new AdoNetAppenderParameter()
{
ParameterName = "@thread",
DbType = System.Data.DbType.String,
Size = 255,
Layout = (IRawLayout)new PatternLayout("%thread")
};
AdoNetAppenderParameter logLevel = new AdoNetAppenderParameter()
{
ParameterName = "@log_level",
DbType = System.Data.DbType.String,
Size = 50,
Layout = (IRawLayout)new PatternLayout("%level")
};
AdoNetAppenderParameter logger = new AdoNetAppenderParameter()
{
ParameterName = "@logger",
DbType = System.Data.DbType.String,
Size = 255,
Layout = (IRawLayout)new PatternLayout("%logger")
};
AdoNetAppenderParameter message = new AdoNetAppenderParameter()
{
ParameterName = "@message",
DbType = System.Data.DbType.String,
Size = 4000,
Layout = (IRawLayout)new PatternLayout("%message")
};
AdoNetAppenderParameter exception = new AdoNetAppenderParameter()
{
ParameterName = "@exception",
DbType = System.Data.DbType.String,
Size = 2000,
Layout = (IRawLayout)new ExceptionLayout()
};
#endregion
AdoNetAppender dotNet = new AdoNetAppender()
{
BufferSize = 1,
CommandType = System.Data.CommandType.Text,
ConnectionType = "REDACTED",
ConnectionString = "REDACTED",
CommandText = "REDACTED",
};
dotNet.AddParameter(logDate);
dotNet.AddParameter(thread);
dotNet.AddParameter(logLevel);
dotNet.AddParameter(logger);
dotNet.AddParameter(message);
dotNet.AddParameter(exception);
dotNet.ActivateOptions();
Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();
hierarchy.Root.AddAppender(dotNet);
hierarchy.Root.Level = Level.Debug;
hierarchy.Configured = true;
//log4net.Config.BasicConfigurator.Configure(dotNet);
log4net.Config.BasicConfigurator.Configure(hierarchy);
}
}
Then I run that in Global.Asax on startup.
This was working fine in a XML file, but when moving it to code it no longer wants to work.
I was moving this into code and followed many other ways to do this on SO. None of them seem to work in my situation.
How to configure log4net programmatically from scratch (no config)
and
Can you configure log4net in code instead of using a config file?