Meine Anwendung wird auf einem angepassten Clientframework ausgeführt. Das Clientframework verwendet log4net, um eigene Protokolldateien zu protokollieren. Wir (unsere Anwendung) müssen das gleiche log4net verwenden, um unsere Protokolldateien in unserem eigenen Pfad zu protokollieren (sagen wir unseren benutzerdefinierten Pfad). Derzeit werden unsere Protokolldateien erstellt, aber protokolliert diese Datei nicht. Es schreibt in die Client-Framework-Protokolldatei.zum Schreiben von Protokolldateien in zwei verschiedene Dateien
Ich suchte viele Websites, um den Link Log4Net: Programmatically specify multiple loggers (with multiple file appenders) mir geholfen, die log4net Config programmatisch noch sind meine Log-Anweisungen geschrieben nicht file.The Code in meinem Protokoll wie unten
public class TraceLog
{
private string message = string.Empty;
private static ILog ILogger = null;
private static TraceLog instance = new TraceLog();
private TraceLog()
{
SetLevel("Log4net.MainForm", "ALL");
AddAppender("Log4net.MainForm", CreateFileAppender("FileAppender", "C:\\mylog.log"));
}
public static TraceLog Instance
{
get
{
return instance;
}
}
public void Debug(string logMessage)
{
message = PrepareLog(logMessage);
ILogger.Debug(message);
}
protected string PrepareLog(string logMessage)
{
string message = GetFileMethodLineNumberInfo();
message += logMessage;
return message;
}
protected string GetFileMethodLineNumberInfo()
{
StackTrace stackTrace = new StackTrace(true);
// The position 3 is relative to the index of the specified method
StackFrame stackFrame = stackTrace.GetFrame(3);
return (stackFrame.GetMethod().DeclaringType.Name
+ "/" + stackFrame.GetMethod().Name
+ "/" + stackFrame.GetFileLineNumber()
+ ":");
}
private static void SetLevel(string loggerName, string levelName)
{
ILogger = LogManager.GetLogger(loggerName);
log4net.Repository.Hierarchy.Logger l = (log4net.Repository.Hierarchy.Logger)ILogger.Logger;
l.Level = l.Hierarchy.LevelMap[levelName];
}
private static void AddAppender(string loggerName, IAppender appender)
{
ILogger = LogManager.GetLogger(loggerName);
log4net.Repository.Hierarchy.Logger l = (log4net.Repository.Hierarchy.Logger)ILogger.Logger;
l.AddAppender(appender);
}
private static IAppender CreateFileAppender(string name, string fileName)
{
FileAppender appender = new FileAppender();
appender.Name = name;
appender.File = fileName;
appender.AppendToFile = true;
//PatternLayout layout = new PatternLayout();
//layout.ConversionPattern = "%d [%t] %-5p %c [%x] - %m%n";
//layout.ActivateOptions();
//appender.Layout = layout;
appender.ActivateOptions();
return appender;
}
}
}
Hallo Despart, danke für Ihre Info.aber ich benutze nicht die. Config-Datei für log4net. programmatisch im Ausführen der Konfigurationsdatei. –