Logging 在.NETCore中使用ILogger如何记录unicode字符
我在.NET Core 2.1应用程序中注入了一个依赖项Logging 在.NETCore中使用ILogger如何记录unicode字符,logging,.net-core,Logging,.net Core,我在.NET Core 2.1应用程序中注入了一个依赖项ILogger工厂,它生成一个ILogger 我想记录如下内容: logger.LogInformation("Magic Char {MagicChar}", "λ") 问题是实际记录的是: info <myClass> Magic Char ?` info 魔法炭` 如何使用.NET的内置记录器记录unicode字符?是的,接口可以完美地处理unicode字符 Console.OutputEncoding =
ILogger工厂
,它生成一个ILogger
我想记录如下内容:
logger.LogInformation("Magic Char {MagicChar}", "λ")
问题是实际记录的是:
info <myClass>
Magic Char ?`
info
魔法炭`
如何使用.NET的内置记录器记录unicode字符?是的,接口可以完美地处理unicode字符
Console.OutputEncoding = Encoding.UTF8;
ILoggerFactory loggerFactory = new LoggerFactory()
.AddDebug()
.AddConsole();
ILogger logger = loggerFactory.CreateLogger<Program>();
logger.LogInformation("Magic Char {MagicChar}", "λ");
Debug.WriteLine(string.Format("Magic Char (b) {0}", "λ"));
Thread.Sleep(1000);
然后:
ILoggerFactory loggerFactory = new LoggerFactory();
loggerFactory.AddProvider(new MyLoggerProvider());
ILogger logger = loggerFactory.CreateLogger<Program>();
logger.LogInformation("Magic Char {MagicChar}", "λ");
ILoggerFactory loggerFactory=new loggerFactory();
AddProvider(新的MyLoggerProvider());
ILogger logger=loggerFactory.CreateLogger();
logger.LogInformation(“Magic Char{MagicChar}”,“λ”);
看看
output.txt
文件,它应该是带有BOM的UTF-8。是的,接口可以完美地处理unicode
Console.OutputEncoding = Encoding.UTF8;
ILoggerFactory loggerFactory = new LoggerFactory()
.AddDebug()
.AddConsole();
ILogger logger = loggerFactory.CreateLogger<Program>();
logger.LogInformation("Magic Char {MagicChar}", "λ");
Debug.WriteLine(string.Format("Magic Char (b) {0}", "λ"));
Thread.Sleep(1000);
然后:
ILoggerFactory loggerFactory = new LoggerFactory();
loggerFactory.AddProvider(new MyLoggerProvider());
ILogger logger = loggerFactory.CreateLogger<Program>();
logger.LogInformation("Magic Char {MagicChar}", "λ");
ILoggerFactory loggerFactory=new loggerFactory();
AddProvider(新的MyLoggerProvider());
ILogger logger=loggerFactory.CreateLogger();
logger.LogInformation(“Magic Char{MagicChar}”,“λ”);
看看
output.txt
文件,它应该是带有BOM的UTF-8。它是发生在所有ILogger工厂
/ILogger
上,还是只发生在一个特定的文件上?我使用的是.NET核心默认文件。我没有尝试过任何其他方法-这是一个选项,但这个问题实际上是关于默认的一个是否可以处理unicode。理论上,这是提供商如何处理unicode的工作。它是发生在所有ILogger工厂
/ILogger
还是只发生在特定的一个?我使用的是.NET核心默认的。我还没有尝试过任何其他方法-这是一个选项,但这个问题实际上是关于默认的一个是否可以处理unicode。理论上,如何处理unicode是提供商的工作。干杯!这就成功了。NETCore的默认设置是Console.OutputEncoding=Encoding.UTF8在ConfigureServices
中选择code>。干杯!这就成功了。NETCore的默认设置是Console.OutputEncoding=Encoding.UTF8在ConfigureServices
中选择code>。