栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何以编程方式更改文件位置?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何以编程方式更改文件位置?

log4net可以为您解决这个问题。在这种情况下,可以使用log4net.Util.PatternString选项处理程序格式化字符串类型的任何appender属性。PatternString甚至支持SpecialFolder枚举,该枚举启用以下优雅的配置:

<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >    <file type="log4net.Util.PatternString"         value="%envFolderPath{CommonApplicationData}\test.txt" />    ...</appender>

这是证明布丁的单元测试:

[Test]public void Load(){    XmlConfigurator.Configure();    var fileAppender = LogManager.GetRepository()        .GetAppenders().First(appender => appender is RollingFileAppender);    var expectedFile =         Path.Combine( Environment.GetFolderPath(     Environment.SpecialFolder.CommonApplicationData),     "test.txt");    Assert.That(fileAppender,         Is.Not.Null & Has.Property("File").EqualTo(expectedFile));}

以下测试验证log4net实际上已写入磁盘(这基本上使该测试成为“集成”测试,而不是单元测试,但我们暂时将其保留):

[Test]public void Log4net_WritesToDisk(){    var expectedFile =         Path.Combine( Environment.GetFolderPath(     Environment.SpecialFolder.CommonApplicationData),     "test.txt");    if (File.Exists(expectedFile))        File.Delete(expectedFile);    XmlConfigurator.Configure();    var log = LogManager.GetLogger(typeof (ConfigTest));    log.Info("Message from test");    LogManager.Shutdown();    Assert.That(File.ReadAllText(expectedFile),         Text.Contains("Message from test"));}

注意:我强烈建议使用上面示例中演示的紧凑属性语法。删除所有这些“ <property name =”可以使您的配置更具可读性。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/576304.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号