Это плохая идея, я знаю, но ...
Я хочу настроить log4net программно с нуля без файла конфигурации. Я работаю над простым приложением для ведения журналов для себя и моей команды, которое можно использовать для набора относительно небольших ведомственных приложений, за которые мы отвечаем. Я хочу, чтобы они все входили в одну базу данных. Приложение для ведения журнала - это просто оболочка для log4net с предварительно настроенным AdoNetAppender.
Все приложения развернуты ClickOnce, что представляет собой небольшую проблему с развертыванием файла конфигурации. Если бы файл конфигурации был частью основного проекта, я мог бы установить его свойства для развертывания со сборкой. Но это часть связанного приложения, поэтому у меня нет возможности развернуть его вместе с основным приложением. (Если это не правда, кто-нибудь, пожалуйста, дайте мне знать).
Возможно, потому что это плохая идея, похоже, не так много примеров кода, доступных для программной настройки log4net с нуля. Вот что у меня есть.
Dim apndr As New AdoNetAppender()
apndr.CommandText = "INSERT INTO LOG_ENTRY (LOG_DTM, LOG_LEVEL, LOGGER, MESSAGE, PROGRAM, USER_ID, MACHINE, EXCEPTION) VALUES (@log_date, @log_level, @logger, @message, @program, @user, @machine, @exception)"
apndr.ConnectionString = connectionString
apndr.ConnectionType = "System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
apndr.CommandType = CommandType.Text
Dim logDate As New AdoNetAppenderParameter()
logDate.ParameterName = "@log_date"
logDate.DbType = DbType.DateTime
logDate.Layout = New RawTimeStampLayout()
apndr.AddParameter(logDate)
Dim logLevel As New AdoNetAppenderParameter()
logLevel.ParameterName = "@log_level"
'And so forth...
После настройки всех параметров для apndr
я сначала попробовал это ...
Dim hier As Hierarchy = DirectCast(LogManager.GetRepository(), Hierarchy)
hier.Root.AddAppender(apndr)
Это не сработало. Затем, как выстрел в темноте, я попробовал это вместо этого.
BasicConfigurator.Configure(apndr)
Это тоже не сработало. У кого-нибудь есть хорошие рекомендации о том, как программно настроить log4net с нуля без файла конфигурации?