Как записывать данные в журнал администратора DNN или журнал событий сервера

Я просто хочу отладить контроллер, но не могу смотреть переменные, которые получаю от функций 2sxc.

Я попытался записать переменные через Log4Net:

private static readonly ILog Logger = LoggerSource.Instance.GetLogger(typeof(MyClassName));

но тип ILog неизвестен в контроллере 2sxc. Мне не хватает ссылки?

Я также нашел этот фрагмент:

using DotNetNuke.Services.Log.EventLog;

var objEventLog = new EventLogController();
objEventLog.AddLog("Sample Message", "Something Interesting Happened!", PortalSettings, UserId, EventLogController.EventLogType.ADMIN_ALERT)

Но я не знаю, что отправлять в "PortalSettings", и я не знаю помощников программного интерфейса 2sxc.

Как вы, ребята, отлаживаете контроллеры 2sxc и регистрируете события (не только для отладки)?

Спасибо за помощь!

Авторы этих фрагментов: Скотт Маккалок (https://www.smcculloch.com/code/logging-to-the-dnn-event-log)


person Frédéric Laurent    schedule 29.05.2018    source источник
comment
Возможно, это поможет stackoverflow.com/questions/50130674/   -  person VDWWD    schedule 29.05.2018
comment
Ссылка, которая вам понадобится для регистратора ILog, - это DotNetNuke.   -  person DotNetNuclear    schedule 30.05.2018


Ответы (2)


Это дает часть ответа: http://www.dnnsoftware.com/community-blog/cid/141723/using-log4net-with-dotnetnuke. И похоже, что пространство имен - это DotNetNuke.Instrumentation.

Что касается PortalSettings, это настройки портала для вашего портала. Я думаю, вам нужно сослаться на DotNetNuke.Entities.Portals, а затем использовать PortalController для получения объекта настроек портала.

person Joe Craig    schedule 29.05.2018

Предыдущий пост Джо Крейга мне очень помог.

Итак, в приложении 2sxc я теперь могу войти в журнал событий DNN (а не в журнал Windows):

@using DotNetNuke.Services.Log.EventLog;
@using DotNetNuke.Entities.Portals;

@{
 var aujourdhui = DateTime.Now;

 var objEventLog = new EventLogController();
    PortalSettings PortalSettings = new PortalSettings();

 objEventLog.AddLog("Debug info", "Variable \"Aujourdhui\" contains: " + aujourdhui.ToString("dddd d MMMM yyyy"), PortalSettings, @Dnn.User.UserID, EventLogController.EventLogType.ADMIN_ALERT);

    }

Единственная небольшая проблема заключается в том, что этот PortalSettings возвращает первый портал, даже если мое приложение 2sxc работает на втором портале (id = 1). Я, должно быть, что-то упускаю. Но пока и то, что мне нужно (отладка), для меня это нормально!

person Frédéric Laurent    schedule 29.05.2018