Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Логгирование в БД с помощью log4net 
:(
    Опции темы
Kosya4ok
Дата 14.11.2008, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 23.7.2007

Репутация: нет
Всего: нет



Добрый день!
Вы бы не могли привести пример логгирования в БД используя ADONetAppender(C# + кофиг файл).
Спасибо.
PM MAIL   Вверх
jonie
Дата 16.11.2008, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 22
Всего: 118



вот конфиг (логирование идет в MSSQL CE базу, убедитесь, что необходимые сборки зарегистрированы в GAC)
база должна быть создана (см : INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception])) и должна называться log.sdf
Код

<log4net>
  <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
    <bufferSize value="100" />
        <connectionType value="System.Data.SqlServerCe.SqlCeConnection, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <connectionString value="data source='log.sdf';"/>
    <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
    <parameter>
      <parameterName value="@log_date" />
      <dbType value="DateTime" />
      <layout type="log4net.Layout.RawTimeStampLayout" />
    </parameter>
    <parameter>
      <parameterName value="@thread" />
      <dbType value="String" />
      <size value="255" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%thread" />
      </layout>
    </parameter>
    <parameter>
      <parameterName value="@log_level" />
      <dbType value="String" />
      <size value="50" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%level" />
      </layout>
    </parameter>
    <parameter>
      <parameterName value="@logger" />
      <dbType value="String" />
      <size value="255" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%logger" />
      </layout>
    </parameter>
    <parameter>
      <parameterName value="@message" />
      <dbType value="String" />
      <size value="4000" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%message" />
      </layout>
    </parameter>
    <parameter>
      <parameterName value="@exception" />
      <dbType value="String" />
      <size value="2000" />
      <layout type="log4net.Layout.ExceptionLayout" />
    </parameter>
  </appender>


   
  <!-- Set root logger level to DEBUG and its only appender to A1 -->
  <root>
    <level value="DEBUG" />
    
    <appender-ref ref="AdoNetAppender" />
  </root>
</log4net>

пусть это лежит в файле "log4net.config"
пишемгде-нибудь код такой:
Код

        private static void InitLog4Net()
        {
            try
            {
                System.IO.FileInfo fi = new System.IO.FileInfo("log4net.config");
                if (!fi.Exists)
                    throw new ArgumentException("Cant load log4net config. Logging will be disabled");
                log4net.Config.XmlConfigurator.Configure(fi);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "ERROR");
            }
        }

        static void Main()
        {
            InitLog4Net();
...блаблабла
        }

ну и работаем в обычном режиме:
Код

        private static readonly ILog logger = LogManager.GetLogger(typeof(ClassName));
 ....


Это сообщение отредактировал(а) jonie - 16.11.2008, 18:05


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Kosya4ok
Дата 17.11.2008, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 23.7.2007

Репутация: нет
Всего: нет



Попробывал применить паттерн в log4net:
Код

<parameter>
      <parameterName value="@log_propertyHostname" />
      <dbType value="String" />
      <size value="255" />
      <layout type="log4net.Layout.PatternLayout, log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821">
        <conversionPattern value="%property{log4net:HostName}" />
      </layout>
    </parameter>

И сразу же перестал писаться лог БД...В чем может быть ошибка?
Блин я просто в шоке!
Кроме как
Код

<commandText value="INSERT INTO Log1 (Date, Message) VALUES (@log_date, @log_message)" />
    <parameter>
      <parameterName value="@log_date" />
      <dbType value="DateTime" />
      <layout type="log4net.Layout.RawTimeStampLayout, log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821" />
    </parameter>  
    <parameter>
      <parameterName value="@log_message" />
      <dbType value="String" />
      <size value="4000" />
      <layout type="log4net.Layout.PatternLayout, log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821">
        <conversionPattern value="%message" />
      </layout>
    </parameter>

Залоггировать в БД не получается!И еще заметил методом тыка, что если после изменения конфиг файла ты не сделал клин проекта, то будут применены предыдущие настройки!Это бред какой то!


Это сообщение отредактировал(а) Kosya4ok - 17.11.2008, 12:25
PM MAIL   Вверх
Kosya4ok
Дата 17.11.2008, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 23.7.2007

Репутация: нет
Всего: нет



Оказало что надо после каждого изменения конфига клинить порект и заново компилить.
У меня возникло два вопроса:
1) Почему данные логгируются в базу только после того как перестартовываешь студию? А не сперваого запуска?
2) Почему не логгируются нижеследующие поля?
Код

[align=left]<parameter>

<parameterName value="@log_timestamp" />
                <dbType value="Int32" />
                <size value="4" />
                <layout type="log4net.Layout.PatternLayout, log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821">
                    <conversionPattern value="%timestamp" />
                </layout>
            </parameter>

    <parameter>
      <parameterName value="@log_identity" />
      <dbType value="String" />
      <size value="255" />
      <layout type="log4net.Layout.PatternLayout, log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821">
        <conversionPattern value="%identity" />
      </layout>
    </parameter>
    <parameter>
                <parameterName value="@log_file" />
                <dbType value="String" />
                <size value="255" />
                <layout type="log4net.Layout.PatternLayout, log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821">
                    <conversionPattern value="%file" />
                </layout>
            </parameter>[/align]

А все остальные логгируются? Глюк log4net'a?

Это сообщение отредактировал(а) Kosya4ok - 17.11.2008, 15:51
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0729 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.