c# - 如何在 C# 中登录到控制台
问题描述
我想使用 Microsoft.Extensions.Logging 将内容记录到控制台。我已经这样设置了:
static void Main()
{
ILoggerFactory loggerFactory = LoggerFactory.Create(builder => builder.AddConsole());
ILogger logger = loggerFactory.CreateLogger<Program>();
logger.LogInformation("Current directory {0}", Directory.GetCurrentDirectory());
}
但是,没有任何内容写入控制台。
解决方案
问题是ConsoleLoggerProvider
添加到loggerFactory
by 的AddConsole
是IDisposable
并且必须被处理掉,以便刷新输出。处置loggerFactory
遗嘱就可以做到这一点。因此,要么loggerFactory.Dispose()
在程序末尾调用,要么using
在创建 loggerFactory 时添加,如下所示:
static void Main()
{
using ILoggerFactory loggerFactory = LoggerFactory.Create(builder => builder.AddConsole());
ILogger logger = loggerFactory.CreateLogger<Program>();
logger.LogInformation("Current directory {0}", Directory.GetCurrentDirectory());
}
推荐阅读
- mysql - 为什么 JSON OVERLAPS MYSQL 函数不起作用?
- typescript - 我可以在没有 strictNullChecks: false 的情况下解决这个问题吗?
- python - 对 python venv 和全局模块的不满
- python - lstm 中的最后一个密集层出错,期望 (1,) 但给定 (88,),但对于我的模型,我需要最后一层仅为 88
- bazel - 读取 WORKSPACE 中的文件内容
- excel - 如何忽略使用可选参数的代码?
- javascript - 快递+猫鼬。如何使用相同的“hidenId”参数获取所有备份集合?
- javascript - 在 bootstrap-vue 项目中包含的方法没有被触发
- tensorflow - 使用 keras 和 tensorflow 的更快的 rcnn 代码示例
- android - 尝试在 RecyclerView 中显示大位图图像 Android 显示错误 setDataSource failed