Я попытался внедрить журнал 4net для моей инфраструктуры автоматизации. Я не написал файл конфигурации XML. Я использовал кодовый файл только для его настройки.
class log4netHelper
{
private static ILog _logger;
private static ConsoleAppender _conAppender;
private static FileAppender _fileAppender;
private static RollingFileAppender _rollingFileAppender;
private static string _layout = "%date{ABSOLUTE} [%class] [%level] [%method] - %message%newline";
public static string Layout
{
set { _layout = value; }
}
private static PatternLayout GetPatternLayout()
{
var patternLayout = new PatternLayout()
{
ConversionPattern = _layout
};
patternLayout.ActivateOptions();
return patternLayout;
}
private static ConsoleAppender GetConsoleAppender()
{
var consoleAppender = new ConsoleAppender()
{
Name = "ConsoleAppender",
Layout = GetPatternLayout(),
Threshold = Level.Error
};
consoleAppender.ActivateOptions();
return consoleAppender;
}
private static FileAppender GetFileAppender()
{
var fileAppender = new FileAppender()
{
Name = "FileAppender",
Layout = GetPatternLayout(),
Threshold = Level.All,
AppendToFile = false,
File = @"C:\FileLogger.log"
};
fileAppender.ActivateOptions();
return fileAppender;
}
private static RollingFileAppender GetRollingFileAppender()
{
var rollingFileAppender = new RollingFileAppender()
{
Name = "RollingFileAppender",
Layout = GetPatternLayout(),
Threshold = Level.All,
AppendToFile = true,
File = "RollingfileLogger.log",
MaximumFileSize = "1MB",
MaxSizeRollBackups = 15
};
rollingFileAppender.ActivateOptions();
return rollingFileAppender;
}
public static ILog GetLogger([CallerFilePath]string filename = "")
{
if (_conAppender == null)
_conAppender = GetConsoleAppender();
if (_fileAppender == null)
_fileAppender = GetFileAppender();
if (_rollingFileAppender == null)
_rollingFileAppender = GetRollingFileAppender();
BasicConfigurator.Configure(_conAppender, _fileAppender, _rollingFileAppender);
return LogManager.GetLogger(filename);
}
}
вместо файла FileLogger.log, я хочу, чтобы имя тестового примера использовалось для каждого запуска тестового примера. Я пока не могу найти какое-либо решение о том, как это сделать. Я попытался изменить значение переменной File в GetAppender (), но не смог. Также попытался передать имя файла параметра в тестовом примере, но файл все еще создается с именем FileLogger.