NLog配置JsonLayout中文输出为unicode问题

  日志输出现要改为json格式,网上查询layout配置为JsonLayout就可以了,结果发现输出中文为unicode编码,看很多文章说配置encode="false"就可以了,结果配置后是显示中文,但没有了双引号,和内容中包括双引号的话直接输出,不是json格式了。后面仔细查看了官方文档,发现原来有些文章略有不对,中文输出是解决了,但都不是json格式了。

       官方参数解释如下:   

  • encode - Enable or disable JSON encoding for the attribute. Enabled by default.(翻译为“该属性启用或禁用JSON编码。 默认情况下启用。”)

      所以把此项设为false的话就不是json格式了,看文档还有其他参数,有一项escapeUnicode参数貌似是对的

  • escapeUnicode - Escape unicode-characters (non-ascii) using \u. Enabled by default.(翻译为“使用\ u转义unicode-characters(非ascii)。 默认情况下启用。”)

     设置此项为false后中文显示正常,编码也正常了。

    完整的设置如下:

<layout xsi:type="JsonLayout">
        <attribute name="Level" layout="${level:upperCase=true}"/>
        <attribute name="Time" layout="${longdate}" />
        <attribute name="Tag" layout="${callsite:className=true:methodName=true:skipFrames=1}" />
        <attribute name="Msg" layout="${message}" escapeUnicode="false"  />
      </layout>

测试输出格式:

{ "Level": "INFO", "Time": "2019-03-25 15:18:38.0199", "Tag": "SysWebTest.Controllers.HomeController.Index", "Msg": "测试日志\"1111\"格式" }

转载于:https://www.cnblogs.com/dangzhensheng/p/10593951.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值