Я пытаюсь использовать Log4Net Rolling File Appender для создания файла журнала, когда возникает проблема с моими данными. Поскольку я работаю с диакритическими и нелатинскими символами, я хочу, чтобы кодировка файла была в UTF-8.
Обычно, если файл не содержит диакритических / нелатинских символов, он кодируется как ASCII. Если он записывает диакритические / нелатинские символы, он автоматически кодирует его в UTF-8. Я хочу, чтобы он всегда был в UTF-8.
Моим первым решением было использование <encoding value="utf-8"/>
. Это дает мне UTF-8 с спецификацией, чего я не хочу. Итак, это решение Stackoverflow подсказало мне использовать <encoding type="System.Text.UTF8Encoding"/>
. Я попробовал это, и я получил бы эту ошибку:
log4net:ERROR Failed to find type [System.Text.UTF8Encoding]
System.TypeLoadException: Could not load type 'System.Text.UTF8Encoding' from assembly 'log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a'.
at System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly assembly, String name, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack type, ObjectHandleOnStack keepAlive)
at System.Reflection.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase)
at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.CreateObjectFromXml(XmlElement element, Type defaultTargetType, Type typeConstraint)
log4net:ERROR Failed to create object to set param: encoding
Я попытался покопаться в Jira Apache и нашел этот пост , который также сказал мне использовать <encoding type="System.Text.UTF8Encoding"/>
, который был таким жекак решение Stackoverflow.
Тогда я предположил, что это может быть из-за того, что я использую .NET Core 2.2, и мне пришлось попробовать другой тип. Я также попробовал <encoding type="System.Text.Encoding.UTF8"/>
, <encoding type="UTF8Encoding"/>
, <encoding type="Encoding.UTF8"/>
, но ни один из них не сработал.
Вот часть приложения моего XML:
<appender name="file" type="log4net.Appender.RollingFileAppender">
<threshold value="WARN" />
<file type="log4net.Util.PatternString" value="%property{LogName}" />
<appendToFile value="true" />
<!--<encoding value="utf-8"/>-->
<encoding type="System.Text.UTF8Encoding"/>
<rollingStyle value="Size" />
<maximumFileSize value="1GB" />
<staticLogFileName value="false" />
</appender>
Есть ли другаянастройки мне нужно сделать?