米娅 2016-08-10 06:54 采纳率: 0%
浏览 1485

C#创建一个封装log4net简单类的单元测试

log4net.config

 <?xml version="1.0" encoding="utf-8" ?>
<configuration>

  <configSections>
    <section name="log4net"
      type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>

  <log4net>

    <root>
      <level value="ALL" />
      <appender-ref ref="LogFileAppender" />
      <appender-ref ref="ConsoleAppender" />
      <appender-ref ref="AdoNetAppender" />
    </root>

    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern"
           value="%d [%c] %-5p %n- %m%n%n"/>
      </layout>
    </appender>
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
      <file value="logs\log.txt"/>
      <appendToFile value="true"/>
      <rollingStyle value="Size"/>
      <maxSizeRollBackups value="10"/>
      <maximumFileSize value="1MB"/>
      <staticLogFileName value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" 
               value="%utcdate [%c] %-5p - %m   [%exception]%n"/>
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="DEBUG" />
        <param name="LevelMax" value="FATAL" />
      </filter>
    </appender>
  </log4net>

</configuration>

SPT.Helper
Mylogger 基于log4net简单封装的类

 public static class MyLogger
    {
        private static ILog _logger;
        private static ILog Logger
        {
            get
            {
                if (_logger == null)
                {
                    //Set log configure file to .\log4net.Config
                    log4net.Config.XmlConfigurator.Configure(new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.Config"));
                    //Set logger name for current application
                    string loggerName = AppDomain.CurrentDomain.FriendlyName;
                    loggerName = loggerName.Replace(".exe", "");
                    _logger = log4net.LogManager.GetLogger(loggerName);
                }
                return _logger;
            }
        }
        public static void Debug(string msg)
        {
            Logger.Debug(msg);
        }

        public static void Info(string msg)
        {
            Logger.Info(msg);
        }

        public static void Warn(string msg)
        {
            Logger.Warn(msg);
        }

        public static void Error(string msg, Exception ex)
        {
            Logger.Error(msg, ex);
        }
    }

UnitTest.Project

引用SPT.Helper的引用,对MyLogger进行单元测试

 [TestClass]
    public class MyLoggerTest
    {
        [TestMethod]
        public void DebugTest()
        {
            MyLogger.Debug("123");
        }
    }

现在DebugTest()可以Run通过,但是在本地找不到输出的log.txt文件,请问应该怎么配置才能在UnitTest项目中输入对应的log文件,或者是这样的类应该怎么写单元测试。求教!

  • 写回答

1条回答 默认 最新

  • threenewbee 2016-08-10 09:12
    关注

    http://www.cnblogs.com/jys509/p/4569874.html

     <!--日志路径-->
          <param name= "File" value= "D:\App_Log\"/>
    
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器