首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >log4net跨平台XML配置

log4net跨平台XML配置
EN

Stack Overflow用户
提问于 2015-05-11 05:32:50
回答 2查看 2.3K关注 0票数 4

我需要将日志文件存储在日志子文件夹中。通常,您可以这样做,我在您的FileAppender中修改App.config,如下所示:

代码语言:javascript
复制
<file type="log4net.Util.PatternString" value="Logs\MyLog.log" />

但是,这不是跨平台的,因为如果您在linux上运行这个文件,它将创建一个名为“Logs\MyLog.log”的文件,而不是一个目录。这是因为'\‘不是linux上的路径分隔符。

我们可以将其更改为“/”,但这只适用于linux,而不适用于windows。

如何使用log4net的XML将我的日志放在跨平台工作的子文件夹中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-11 09:46:12

一个可能的解决方案是,如果您在Linux上,那么您可以为windows配置文件,而不是在配置测试之后。在Linux上,您可以获得附录,并将file=>value值更改为与Linux兼容的替换:

代码语言:javascript
复制
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 ();
                    }
                }
            }
        }
}
票数 1
EN

Stack Overflow用户

发布于 2017-02-16 12:02:37

另一个解决方案是这样使用它:

<file type="log4net.Util.PatternString" value=".//Logs//MyLog.log" />

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30160255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档