Ich benutze log4net für die Protokollierung meiner Protokolle. und Verwendung Konfiguration hier (nur protokollieren die Nachricht):Warum log4net Log-Nachricht haben unbekannte Zeichen?
<logger name="LogTracking">
<level value="INFO" />
<appender-ref ref="LogTrackingAppender" />
</logger>
<appender name="LogTrackingAppender" type="log4net.Appender.RollingFileAppender">
<file value="logging\urltracking\" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<maxSizeRollBackups value="-1" />
<maximumFileSize value="20MB" />
<encoding value="utf-8" />
<datePattern value="yyyy'\\'MM'\\'dd'\\'yyyyMMddHH'.log'" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message%newline" />
</layout>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
</appender>
Aber wenn ich meine Protokolle Datei zu öffnen, wenn in UTF-8 die Linien kodieren Nachricht normal erscheint. Und wenn in der ANSI-Codierung diese Zeilen-Nachricht ein unbekanntes Zeichen am Anfang der Zeilen hat. Siehe hier:
<?xml version="1.0" encoding="utf-8"?><UrlTrackingObj><Url>mysite</Url><Action>view</Action><Ip>::1</Ip><Os>Windows 8.1</Os><Browser>Chrome 59.0</Browser></UrlTrackingObj>
Dann, wenn meine app Protokollzeilen liest, ist es dieses Zeichen lesen und verarbeiten kann. Was ist meine Konfiguration falsch? oder irgendeine Lösung, die dieses Problem löst? Ich möchte meine Logzeile nur:
<?xml version="1.0" encoding="utf-8"?><UrlTrackingObj><Url>mysite</Url><Action>view</Action><Ip>::1</Ip><Os>Windows 8.1</Os><Browser>Chrome 59.0</Browser></UrlTrackingObj>
Es bedeutet, dass ich ersetzen muss ' ' by ' '? –
@SonNguyen ukm einfach 'type' Attribut zum' encoding' Tag hinzufügen. –
@SonNguyen sollten Sie die Antwort akzeptieren, wenn es hilft, Ihr Problem zu lösen, das für spätere Benutzer sehr nützlich ist. :) Bitte beziehen Sie sich darauf: [Annahme von Antworten: Wie funktioniert es?] (Https://meta.stackexchange.com/a/5235) –