我只是想调试一个控制器,但是我无法看到我从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)
答案 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也会返回第一个门户网站。我肯定错过了什么。但就目前而言我需要(调试),那对我来说没问题!