Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用log4net.Ext.Json在Sitecore相关项目中创建Json日志_Json_Logging_Sitecore_Datadog_Log4net Ext Json - Fatal编程技术网

无法使用log4net.Ext.Json在Sitecore相关项目中创建Json日志

无法使用log4net.Ext.Json在Sitecore相关项目中创建Json日志,json,logging,sitecore,datadog,log4net-ext-json,Json,Logging,Sitecore,Datadog,Log4net Ext Json,正如我们所知,Sitecore已将log4net封装为默认日志功能(Sitecore.logging)。我的任务是使用log4net.Ext.Json布局创建Json日志,并将其从Azure提供给Datadog APM。 相应的有用链接如下: 但在过去两周内,我未能实现: 尝试1:在VisualStudio中添加log4net.ext.Json(2.0.8.3版)NuGet包。由于Sitecore已经封装了log4net(2.0.9版),所以我不需要添加log4net NuGet包 然后,我将

正如我们所知,Sitecore已将log4net封装为默认日志功能(Sitecore.logging)。我的任务是使用log4net.Ext.Json布局创建Json日志,并将其从Azure提供给Datadog APM。 相应的有用链接如下:

但在过去两周内,我未能实现:

尝试1:在VisualStudio中添加log4net.ext.Json(2.0.8.3版)NuGet包。由于Sitecore已经封装了log4net(2.0.9版),所以我不需要添加log4net NuGet包

然后,我将配置文件配置如下:

<appender name="JsonFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="$(dataFolder)/logs/json_log/json_log.json" />
      <appendToFile value="true" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="100MB" />
      <!--json formatted log4net logging-->
      <layout type='log4net.Layout.SerializedLayout, log4net.Ext.Json'>
          <decorator type="log4net.Layout.Decorators.StandardTypesDecorator, log4net.Ext.Json" />
          <!--explicit default members-->
          <default />
          <!--remove the default preformatted message member-->
          <remove value="ndc" />
          <remove value="message" />
          <!--add raw message-->
          <member value="message:messageobject" />
          <!--add value='properties' to emit Datadog properties -->
          <member value='properties'/>
          <member value='dd.env' />
          <member value='dd.service' />
          <member value='dd.version' />
          <member value='dd.trace_id' />
          <member value='dd.span_id' />
      </layout>
</appender>
<root>
      <level value='INFO'/>
      <appender-ref ref="JsonFileAppender"/>
</root>
<appender name="JsonFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="$(dataFolder)/logs/json_log/json_log.json" />
      <appendToFile value="true" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="100MB" />
      <!--json formatted log4net logging-->
      <!--SerializedLayout-->
      <layout type='SitecoreLoggingExtensions.JsonLayout, SitecoreLoggingExtensions'>  
          <!--explicit default members-->
          <default />
          <!--add value='properties' to emit Datadog properties -->
          <member value='properties'/>
          <!-- Manual changes: start -->
          <member value='dd.env' />
          <member value='dd.service' />
          <member value='dd.version' />
          <member value='dd.trace_id' />
          <member value='dd.span_id' />
          <!-- Manual changes: end -->
      </layout>
</appender>
<root>
      <!--<level value='INFO'/>-->
      <appender-ref ref="JsonLogFileAppender"/>
</root>

以及我更改为的配置文件:

<appender name="JsonFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="$(dataFolder)/logs/json_log/json_log.json" />
      <appendToFile value="true" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="100MB" />
      <!--json formatted log4net logging-->
      <layout type='log4net.Layout.SerializedLayout, log4netExtJson'>
          <decorator type="log4net.Layout.Decorators.StandardTypesDecorator, log4netExtJson" />
          <!--explicit default members-->
          <default />
          <!--remove the default preformatted message member-->
          <remove value="ndc" />
          <remove value="message" />
          <!--add raw message-->
          <member value="message:messageobject" />
          <!--add value='properties' to emit Datadog properties -->
          <member value='properties'/>
          <member value='dd.env' />
          <member value='dd.service' />
          <member value='dd.version' />
          <member value='dd.trace_id' />
          <member value='dd.span_id' />
      </layout>
</appender>
<root>
      <level value='INFO'/>
      <appender-ref ref="JsonFileAppender"/>
</root>

我编写的配置文件如下所示:

<appender name="JsonFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="$(dataFolder)/logs/json_log/json_log.json" />
      <appendToFile value="true" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="100MB" />
      <!--json formatted log4net logging-->
      <layout type='log4net.Layout.SerializedLayout, log4net.Ext.Json'>
          <decorator type="log4net.Layout.Decorators.StandardTypesDecorator, log4net.Ext.Json" />
          <!--explicit default members-->
          <default />
          <!--remove the default preformatted message member-->
          <remove value="ndc" />
          <remove value="message" />
          <!--add raw message-->
          <member value="message:messageobject" />
          <!--add value='properties' to emit Datadog properties -->
          <member value='properties'/>
          <member value='dd.env' />
          <member value='dd.service' />
          <member value='dd.version' />
          <member value='dd.trace_id' />
          <member value='dd.span_id' />
      </layout>
</appender>
<root>
      <level value='INFO'/>
      <appender-ref ref="JsonFileAppender"/>
</root>
<appender name="JsonFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="$(dataFolder)/logs/json_log/json_log.json" />
      <appendToFile value="true" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="100MB" />
      <!--json formatted log4net logging-->
      <!--SerializedLayout-->
      <layout type='SitecoreLoggingExtensions.JsonLayout, SitecoreLoggingExtensions'>  
          <!--explicit default members-->
          <default />
          <!--add value='properties' to emit Datadog properties -->
          <member value='properties'/>
          <!-- Manual changes: start -->
          <member value='dd.env' />
          <member value='dd.service' />
          <member value='dd.version' />
          <member value='dd.trace_id' />
          <member value='dd.span_id' />
          <!-- Manual changes: end -->
      </layout>
</appender>
<root>
      <!--<level value='INFO'/>-->
      <appender-ref ref="JsonLogFileAppender"/>
</root>

最终创建了包含内容的Json日志!但是在我在Azure上进行设置之后,就没有了与带有日志文件的Datadog的连接。我的猜测是,布局为SitecoreLoggingExtensions的Json日志与Datadog不兼容。因此,这种方式对我的需要没有用处

我想知道以前是否有人在Sitecore相关项目中成功配置了log4net.Ext.Json包