Je veux log linenumber à mon fichier journal, en utilisant log4net.the les détails de configuration de log4net est écrit par programmation.i essayé hell out chose pour obtenir le numéro de ligne à être connecté mais aider moins, voici mon codepour enregistrer le numéro de ligne dans mon application par programme
privé IAppender CreateFileAppender (nom de chaîne, 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);
}
même j'ai essayé d'obtenir le numéro de ligne à l'aide stacktrace mais im obtenir la valeur 0. ici est le code
chaîne protégée GetLogMessage (message string) {
StackTrace stackTrace = new StackTrace(true);
StackFrame stackFrame = stackTrace.GetFrame(3);
return (stackFrame.GetMethod().DeclaringType.Name
+ "|" + stackFrame.GetMethod().Name
+ "|" + **stackFrame.GetFileLineNumber()**
+ "||||" + message);
}
merci Rob, J'ai essayé comme vous l'avez mentionné, oui le soulignement de base à être le point 1 mentinoed.pdb fichier devrait être livré avec dll. de ma curiosité, y at-il de toute façon nous pouvons obtenir le numéro de ligne sans utiliser le fichier .pdb? merci encore. –
assez sûr que la réponse est non. sans le pdb, il n'y a rien pour relier vos binaires au code d'origine dont ils sont venus –