我需要将日志文件存储在日志子文件夹中。通常,您可以这样做,我在您的FileAppender中修改App.config,如下所示:
<file type="log4net.Util.PatternString" value="Logs\MyLog.log" />但是,这不是跨平台的,因为如果您在linux上运行这个文件,它将创建一个名为“Logs\MyLog.log”的文件,而不是一个目录。这是因为'\‘不是linux上的路径分隔符。
我们可以将其更改为“/”,但这只适用于linux,而不适用于windows。
如何使用log4net的XML将我的日志放在跨平台工作的子文件夹中?
发布于 2015-05-11 09:46:12
一个可能的解决方案是,如果您在Linux上,那么您可以为windows配置文件,而不是在配置测试之后。在Linux上,您可以获得附录,并将file=>value值更改为与Linux兼容的替换:
XmlConfigurator.Configure();
if (Environment.OSVersion.Platform == PlatformID.Unix){
var repository = LogManager.GetRepository() as Hierarchy;
if (repository != null)
{
var appenders = repository.GetAppenders();
if (appenders != null)
{
foreach (var appender in appenders)
{
if (appender is FileAppender)
{
var fileLogAppender = appender as FileAppender;
fileLogAppender.File = fileLogAppender.File.Replace (@"\", Path.DirectorySeparatorChar.ToString ());
fileLogAppender.ActivateOptions ();
}
}
}
}
}发布于 2017-02-16 12:02:37
另一个解决方案是这样使用它:
<file type="log4net.Util.PatternString" value=".//Logs//MyLog.log" />
https://stackoverflow.com/questions/30160255
复制相似问题