无法在.NET 4.5 MVC应用程序上实现JSNLog

时间:2018-08-23 09:26:10

标签: c# logging error-logging jsnlog

问题::我试图在MVC应用程序(目标框架:.NET 4.5)中使用JSNLog。我收到“ JSN日志在当前上下文中不存在” 错误。

我尝试安装 JSNLog 2.28.0 ,但显示为:

无法安装软件包“ JSNLog 2.28.0”。您正在尝试将此软件包安装到以'.NETFramework,Version = v4.5'为目标的项目中,但是该软件包不包含任何与该框架兼容的程序集引用或内容文件。有关更多信息,请与程序包作者联系。

因此,我已经安装了以下用于日志记录的软件包:

  1. JSN Log v-2.27.1
  2. JSNLog.Log4Net v-2.27.1
  3. log4Net v-2.0.8

我早些时候在.NET Framework 4.6.1上完成了同样的事情,在那时它非常容易工作。有什么我想念的吗?

我的步骤是:

  1. 从VS 2017创建MVC应用程序。
  2. 安装了log4net并添加了服务器端日志记录。(此方法工作正常)
  3. 下载的JSNLog和JSNLog.Log4Net
  4. JSNLog配置自动添加到Web.Config中。
  5. 在视图中添加了 @ Html.Raw(JSNLog.JavascriptLogging.Configure())。 (这仅适用于.NET 4.6.1)。
  6. 为JSN Log添加了我自己的脚本。

我的示例代码如下:

我在Index.cshtml页面上遇到以下错误:

Index_cshtml

这是Web.Config中我的JSNLog配置:

<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    <section name="jsnlog" type="JSNLog.ConfigurationSectionHandler, JSNLog" requirePermission="false" /><sectionGroup name="common">
    <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
    </sectionGroup>
  </configSections>

  <log4net>
    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
      <!-- prevent log4net from locking the file, otherwise integration tests cannot remove it for each test-->
      <param name="LockingModel" type="log4net.Appender.FileAppender+MinimalLock" />
      <file value="Logs\log.txt" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%utcdate | %level | %logger | %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="TRACE" />
      <appender-ref ref="RollingFile" />
    </root>
  </log4net>
    <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
    <httpHandlers>
        <add verb="*" path="*.logger" type="JSNLog.LoggerHandler, JSNLog" />
    </httpHandlers>
    </system.web>

<jsnlog productionLibraryPath="~/Scripts/jsnlog.min.js">
    </jsnlog><common>
    <logging>
      <factoryAdapter type="Common.Logging.Log4Net.Universal.Log4NetFactoryAdapter, Common.Logging.Log4Net.Universal" />
    </logging>
  </common>

我尝试使用.NET 4.6.1项目中的jsnlog dll。

此处先前的错误已消失,但现在却显示此错误:POST http://localhost:xxxxx/jsnlog.logger 500(内部服务器错误)

截屏: Browser Console Error

0 个答案:

没有答案