私のアプリケーションはカスタマイズされたクライアントフレームワーク上で動作し、クライアントフレームワークはlog4netを使用して独自のログファイルを記録します。私たちのアプリケーションでは、同じlog4netを使用して独自のパス(たとえば、カスタマイズされたパス)でログファイルをログに記録する必要があります。現在、私たちのログファイルは作成されていますが、ログはそのファイルに書き込まれていません。これは、クライアントフレームワークのログファイルに書き込んでいます。私は多くのサイトにリンク Log4Net: Programmatically specify multiple loggers (with multiple file appenders) を検索ログファイルを2つの異なるファイルに書き込む
がプログラムlog4netの設定ファイルを設定するには、私を助け、 まだ私のログステートメントは
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;
}
}
}
こんにちはDespart、 私はinfo.butのためにありがとう、私はlog4netの.configファイルを使用していません。コンフィグレーションファイルをプログラム的に実行しています。 –