如何在DNN管理日志或服务器事件日志中记录数据

时间:2018-05-29 02:11:42

标签: dotnetnuke 2sxc

我只是想调试一个控制器,但是我无法看到我从2sxc函数中得到的变量。

我尝试通过Log4Net写入记录变量:

Channel.queryByChaincode

但在2sxc控制器中未知类型ILog。我错过了参考文献吗?

我也找到了这个片段:

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

但我不知道该怎样发送到“PortalSettings”,我对2sxc编程接口的助手没有任何线索。

你们如何调试2sxc控制器和记录事件(不仅仅是为了调试)?

感谢您的帮助!

这些片段的信用:Scott McCulloch(https://www.smcculloch.com/code/logging-to-the-dnn-event-log

2 个答案:

答案 0 :(得分:0)

这提供了部分答案:http://www.dnnsoftware.com/community-blog/cid/141723/using-log4net-with-dotnetnuke。并且,它看起来像名称空间是DotNetNuke.Instrumentation。

对于PortalSettings,这是门户网站的门户网站设置。我认为你需要引用DotNetNuke.Entities.Portals,然后使用PortalController来检索门户设置对象。

答案 1 :(得分:0)

Joe Craig之前的帖子对我帮助很大。

因此,在 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);

    }

唯一的小问题是,即使我的2sxc应用程序在第二个门户网站上运行(id = 1),此PortalSettings也会返回第一个门户网站。我肯定错过了什么。但就目前而言我需要(调试),那对我来说没问题!