在MVC3中的Razor视图中记录日志

4
如何在Razor视图中添加日志记录?我想使用诸如log4net之类的日志记录工具添加调试语句。
3个回答

9

我同意其他回答,但这只是用于临时调试,例如查找计数或类似情况。

经过一番摆弄后,以下语法可行。

@{ ViewBag.Log = log4net.LogManager.GetLogger("Products.cshtml");}

@ViewBag.Log.Debug("产品数量 = " + Model.Products.ToList().Count);

希望这能帮助到某些人。


2

我强烈不建议你那样做。

在我看来,你的观点中有逻辑。这使得这些观点难以维护,而测试逻辑更加困难。

将逻辑移至控制器或视图模型中,并在这些位置进行记录。


5
这应该是一条评论。有时候很难区分告诉他们如何“正确”地做和只是帮助他们解决问题之间的界限。虽然我同意你的观点,但可能存在合法的理由来尝试在视图中进行调试。无论如何,像这样的答案并没有真正帮到人。 - CWSpear
2
将逻辑移至控制器或视图模型确实有助于解决问题。而且所需的工作量很小。如果我的答案提到了繁琐或耗时的事情,我会同意你的观点。 - jgauffin
你怎么知道这个逻辑可以被移动,更不用说只需要最小的努力了? - EvilSnack

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接