C#学习教程:使用Serilog时如何在输出消息中获取丰富的属性){returnnewTester{Count=7,Name="Redmond"};}Log.Logger=newLoggerConfiguration().MinimumLevel.Verbose().Enrich.WithProperty("Site","DanLocal")。WriteTo.ColoredConsole().CreateLogger();var测试仪=GetTester();Log.Verbose("{Site}-这是冗长的{@tester}",tester);Log.Verbose("这是冗长的{@tester}-{Site}",tester);第一个日志语句输出:2014-08-1910:02:25[详细]“SeriLogTest.Tester”-这是详细的{@tester}第二个日志语句输出:2014-08-1910:02:25[详细]这个是冗长的Tester{Count:7,Name:"Redmond"}-"DanLocal"我希望他们都输出相同的信息,只是按照消息模板定义的顺序不同。但是正如你所看到的,如果你不把最丰富的属性放在最后,它将被提供的对象接管进行日志记录,而第二个模板属性将被忽略。有没有办法做到这一点?输出模板是实现这一点的方法,即:.WriteTo.ColoredConsole(outputTemplate:"{Timestamp:HH:mm}[{Level}]{Site}:{Message}{NewLine}{Exception}")这将打印站点属性的值以及每条消息;例如:Log.Information("Hello");prints:19:40[Information]DanLocal:你好如果遇到这种情况的朋友好奇如何输出所有可用的上下文属性,可以在输出字符串中使用{Properties}。.WriteTo.ColoredConsole(outputTemplate:"{Timestamp:HH:mm}[{Level}]{Properties}:{Message}{NewLine}{Exception}")打印:以上就是C#学习教程:如何在when时输出消息使用Serilog获取丰富属性中共享的所有内容。如果对你有用,需要了解更多C#学习教程,希望大家多多关注——19:40【资讯】{Site="DanLocal"}:您好本文来自网络收藏不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
