DotNetNuke и регистрация ошибок - PullRequest
8 голосов
/ 11 января 2012

Предоставляет ли DotNetNuke встроенную платформу регистрации ошибок?Мой клиент использует DotNetNuke, и я не вижу глобальной структуры регистрации ошибок.Я вижу класс ниже с некоторыми try / catch, использующими их.

namespace DotNetNuke.Services.Exceptions
{
    [StandardModule]
    public sealed class Exceptions
    {
        public static ExceptionInfo GetExceptionInfo(Exception e);
        public static void LogException(Exception exc);
        public static void LogException(ModuleLoadException exc);
        public static void LogException(PageLoadException exc);
        public static void LogException(SchedulerException exc);
        public static void LogException(SecurityException exc);
        public static void LogSearchException(SearchException exc);
        public static void ProcessModuleLoadException(Control ctrl, Exception exc);
        public static void ProcessModuleLoadException(PortalModuleBase objPortalModuleBase, Exception exc);
        public static void ProcessModuleLoadException(Control ctrl, Exception exc, bool DisplayErrorMessage);
        public static void ProcessModuleLoadException(PortalModuleBase objPortalModuleBase, Exception exc, bool DisplayErrorMessage);
        public static void ProcessModuleLoadException(string FriendlyMessage, Control ctrl, Exception exc);
        public static void ProcessModuleLoadException(string FriendlyMessage, Control ctrl, Exception exc, bool DisplayErrorMessage);
        public static void ProcessModuleLoadException(string FriendlyMessage, PortalModuleBase objPortalModuleBase, Exception exc, bool DisplayErrorMessage);
        public static void ProcessPageLoadException(Exception exc);
        public static void ProcessPageLoadException(Exception exc, string URL);
        public static void ProcessSchedulerException(Exception exc);
    }
}

Ответы [ 4 ]

20 голосов
/ 11 января 2012

Log4Net доступна, но большинство модулей используют собственный класс исключений в DNN, который будет хранить «события» в таблице EventLog, вы можете получить доступ к отчетам о «событиях», включая ошибки, со страницы Admin / Event Viewer.

Обычно внутри модуля вы делаете что-то вроде следующего.

try
{
    //STUFF HERE
}
catch (Exception exc) //Module failed to load
{
    Exceptions.ProcessModuleLoadException(this, exc);
}
7 голосов
/ 11 января 2012

DNN включает log4net, см. Эту статью вики: http://dnnsoftware.com/Wiki/Page/log4net-In-DotNetNuke

4 голосов
/ 04 октября 2013

Прошло много времени с тех пор, как был опубликован первый пост об этом, и после того, как я провел небольшое исследование для себя, я считаю, что нашел лучший и более свежий ресурс, чем принятый ответ.Ниже приведено немного больше информации о том, как настроить Log4Net и интегрировать его в свои модули: http://www.dnnsoftware.com/community-blog/cid/141723/Using-log4net-with-DotNetNuke.

Похоже, что одним из преимуществ использования подхода Log4Net является возможность настроить уровень ведения журнала, чтобы приложения моглибыть более легко исследованным и отлаженным.Это может быть особенно полезно при перемещении приложений между средами.Я использовал это при отладке приложения на сервере, где я не могу подключиться к процессу и прервал приложение для отладки.Я поднимаю уровень регистрации и работаю с информацией в журнале.Это может быть болезненным, болезненным способом отладки, но действительно полезным, когда вы застряли.

В DNN 7 упомянутый здесь класс DnnLog устарел, поэтому, вероятно, следует изучить альтернативы.

Похоже, что класс пользовательских исключений предназначен для исключений, которые должны регистрироваться во всех случаях.Я нашел эту немного более старую статью, которая, вероятно, все еще актуальна, если есть необходимость регистрировать пользовательскую информацию, http://www.ifinity.com.au/Blog/EntryId/114/Creating-Exception-Logging-with-DotNetNuke. Некоторые классы необходимо будет обновить, но общая методика выглядела хорошо и больше соответствует предложению Криса выше.С небольшой настройкой этот пример может быть использован для реализации настраиваемого уровня ведения журнала.

0 голосов
/ 31 августа 2016

Насколько я понимаю, у вас есть следующие опции:

...