をログに記録する私は、クライアント側のロギング用SerilogとJSNLogを使用して.NETのコアプロジェクトを持っています。クライアントからサーバーにJSONオブジェクトを渡してSerilogを使用してログオンすると、ログに記録されたJSONオブジェクトは空になります。Serilog/JSNLog .NETのコアは、空のJSON
非常に奇妙な事は、私は付属のデバッガを持っている場合は、JSONが細かいログインしている、ということです。例えば
:
私が手デバッグ中:
[11:00:01 FTL] this works
[11:00:02 INF] Request finished in 342.1967ms 200 text/plain
[11:00:02 FTL] "testMessage": "this is an error"
[11:00:02 INF] Request finished in 374.7837ms 200 text/plain
もしくはCtrl + F5は、私が取得する場合:
[10:59:14 FTL] this works
[10:59:14 INF] Request finished in 253.3403ms 200 text/plain
[10:59:15 FTL] [[[]]]
[10:59:15 INF] Request finished in 267.2553ms 200 text/plain
私は問題がSerilogまたはJSNLogにあるのかわからないんだけどしかし、どんな助けも高く評価されます。
私はこれを複製することは非常に簡単なサンプルアプリを作りました。 Startup.csで
:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
Log.Logger = new LoggerConfiguration()
.WriteTo.Console().CreateLogger();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddSerilog();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseJSNLog(new LoggingAdapter(loggerFactory));
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
そして、私のフロントエンドで:.NETのコアのWebapp
依存関係として示されているデフォルトの使用
<script src="~/lib/jsnlog.js/jsnlog.min.js"></script>
<script>
JL().fatal({ testMessage: "this is an error" });
JL().fatal("this works");
</script>