Я пишу приложение для Windows Mobile (6.5.3) на устройстве MC9190 (CF 3.5). Я хочу регистрировать определенные события (например, информацию о входе пользователя) и любые исключения во время выполнения. Как я могу это сделать? Я попытался использовать log4net из этого примера http://breathingtech.com/2009/using-apache-log4net-in-net-compact-framework-projects/ Но CF 3.5 не поддерживается. (http://logging.apache.org/log4net/release/framework-support.html). Как я могу регистрировать события/исключения в своем приложении? Существует ли какая-либо стандартная структура журналов для CF 3.5? Спасибо.
Журнал исключений и событий в Windows Mobile 6.5.3 CF 3.5
Ответы (1)
Написать простой журнал не так сложно. Независимо от того, какое ведение журнала вы реализуете, вам необходимо добавить строку для каждого исключения или события, которое вы хотите зарегистрировать. Log4Net и другие платформы являются полноценными и поддерживают методы, которые нельзя использовать в Compact Framework (т. е. запись в системный журнал событий). Таким образом, вы должны самостоятельно решить, стоит ли использовать фреймворк, в котором вы не можете использовать большинство функций, поддерживаемых в полном фреймворке.
Есть также несколько более простых инструментов ведения журнала: http://blogs.msdn.com/b/davidklinems/archive/2006/08/17/704662.aspx
См. также: Библиотека ведения журналов для .NET Compact Framework?
Проблема с log4net и его компактной поддержкой фреймворка заключается в том, что в основном он не поддерживается с течением времени (как и в случае с другими библиотеками с открытым исходным кодом).
Получить рабочий log4net для компактного фреймворка очень просто:
- Откройте файл log4.net src/log4net.vs2008.sln.
- Добавьте новый проект библиотеки классов SmartDevice (подойдет WM5 SDK и CF2) и назовите его log4netCF.
- удалить существующий файл class1.cs
измените свойства проекта: Имя сборки и пространство имен по умолчанию = "log4net"
Теперь просто щелкните правой кнопкой мыши каждую папку с исходным кодом в проекте log4net.vs2008 в обозревателе решений и выберите «Копировать», затем щелкните правой кнопкой мыши проект log4netCF и выберите «Вставить». Повторите это для каждой отдельной папки:
- Appender,
- Конфигурация,
- Основной,
- форматирование даты,
- Фильтр,
- Макет,
- объектрендерер,
- Плагин,
- Репозиторий,
- Утилита
также скопируйте отдельные файлы:
- AssemblyInfo.cs
- AssemblyVersionInfo.cs
- GlobalContext.cs
- ILog.cs
- Логикалтреадконтекст.cs
- LogManager.cs
- MDC.cs
- NDC.cs
- ThreadContext.cs
из log4net.vs2008 в проект log4netCF.
- удалить Properties/AssemblyInfo.cs в проекте log4netCF
- добавьте PocketPC;NETCF_2_0;NETCF в параметры сборки log4netCF
Теперь щелкните правой кнопкой мыши проект log4netCF и выберите «Сборка». Сборка должна пройти без ошибок, и у вас есть работающая сборка Compact Framework 2.0 log4net.
Файл проекта доступен по адресу www.hjgode.de/temp/log4netCF.csproj. Просто загрузите и поместите в вашу Subversion копию log4net в папку src рядом с файлом log4net.vs2008.csproj.