Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 在.NETCore中使用ILogger如何记录unicode字符_Logging_.net Core - Fatal编程技术网

Logging 在.NETCore中使用ILogger如何记录unicode字符

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 =

我在.NET Core 2.1应用程序中注入了一个依赖项
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.UTF8ConfigureServices
中选择code>。干杯!这就成功了。NETCore的默认设置是
Console.OutputEncoding=Encoding.UTF8ConfigureServices
中选择code>。