Ich will Protokoll linenumt zu meiner Protokolldatei, log4net.the config Details von log4net wird programmgesteuert geschrieben. Ich versuchte Hölle Ding, um Zeilennummer zu protokollieren bekommen, aber helfen weniger, hier ist mein Code, um Zeilennummer in meiner App programmgesteuert zu protokollieren
privater IAppender CreateFileAppender (string name, string filename) {
PatternLayout layout = new PatternLayout();
//layout.ConversionPattern = "%d{MM/dd/yy HH:mm:ss} %line %-5p : %m%n";
//layout.ConversionPattern = "%d{MM/dd/yy HH:mm:ss} 5p [%t] (%F:%L) - %m%n";
layout.ConversionPattern = "%5p %d{yyyy-MM-dd hh:mm:ss tt} (%c:%L) - [%X {UserIdentityName}] %m%n";
layout.ActivateOptions();
FileAppender appender = new FileAppender(layout, HCVIEWERLOG_FILENAME, true);
appender.Layout = layout;
appender.Name = HCVIEWERLOG_APPENDER;
appender.File = HCVIEWERLOG_FILENAME;
appender.AppendToFile = true;
string[] Args = Environment.CommandLine.Split
("/".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
foreach(string txt in Args)
appender.Threshold = txt.ToString().ToUpper().Contains("DEBUG") ?
log4net.Core.Level.Debug : log4net.Core.Level.Off;
appender.ActivateOptions();
return (appender as IAppender);
}
noch habe ich versucht, Zeilennummer immer mit stacktrace aber im den Wert als 0 hier immer ist der Code
geschützter Zeichenfolge GetLogMessage (string message) {
StackTrace stackTrace = new StackTrace(true);
StackFrame stackFrame = stackTrace.GetFrame(3);
return (stackFrame.GetMethod().DeclaringType.Name
+ "|" + stackFrame.GetMethod().Name
+ "|" + **stackFrame.GetFileLineNumber()**
+ "||||" + message);
}
danke Rob, Ich versuchte, wie Sie bereits erwähnt, ja die grundlegende Unterstreichung zu sein ist die Punkt 1 meninoed.pdb-Datei sollte zusammen mit dll ausgeliefert werden. aus meiner Neugier, gibt es trotzdem können wir Zeilennummer ohne Verwendung von PDB-Datei bekommen? danke nochmal. –
ziemlich sicher, die Antwort ist nein. Ohne pdb gibt es nichts, was die Binärdateien mit dem ursprünglichen Code, aus dem sie stammen, in Beziehung setzen könnte –