// private readonly Messenger _messenger; /// <summary> /// 创建远程日志会话 /// </summary> /// <param name="instanceName">运行实例名称</param> /// <param name="sessionName">运行会话名称</param> /// <param name="sessionId">会话ID</param> /// <param name="logLevel">日志级别</param> /// <exception cref="TestflowRuntimeException"></exception> public RemoteLoggerSession(string instanceName, string sessionName, int sessionId, LogLevel logLevel) : base(sessionId, Constants.SlaveLogName) { // Type[] _targetType = new Type[] {typeof(LogMessage)}; // MessengerOption messengerOption = new MessengerOption(Constants.LogQueueName); // _messenger = Messenger.GetMessenger(messengerOption); string testflowHome = Environment.GetEnvironmentVariable(CommonConst.EnvironmentVariable); if (string.IsNullOrWhiteSpace(testflowHome)) { testflowHome = ".."; } char dirSeparator = Path.DirectorySeparatorChar; string logPath = GetSlaveLogPath(instanceName, sessionName, testflowHome); string configFilePath = $"{testflowHome}{dirSeparator}{Constants.SlaveConfFile}"; try { log4net.Config.XmlConfigurator.Configure(new FileInfo(configFilePath)); Repository = LogManager.GetRepository(); IAppender[] appenders = Repository.GetAppenders(); RollingFileAppender appender = appenders.First(item => item.Name.Equals(Constants.SlaveAppender)) as RollingFileAppender; string originalLogFile = appender.File; appender.File = logPath; appender.ActivateOptions(); if (File.Exists(originalLogFile)) { File.Delete(originalLogFile); } Logger = LogManager.GetLogger(Constants.PlatformLogName); LogLevel = logLevel; } catch (LogException ex) { TestflowRuntimeException exception = new TestflowRuntimeException(ModuleErrorCode.LogQueueInitFailed, ex.Message, ex); throw exception; } }
/// <summary> /// 内部日志会话 /// </summary> public PlatformLogSession() : base(CommonConst.PlatformLogSession, Constants.PlatformLogName) { string testflowHome = Environment.GetEnvironmentVariable(CommonConst.EnvironmentVariable); if (string.IsNullOrWhiteSpace(testflowHome)) { testflowHome = ".."; } char dirSeparator = Path.DirectorySeparatorChar; string logPath = $"{testflowHome}{dirSeparator}{Constants.PlatformLogDir}"; string configFilePath = $"{testflowHome}{dirSeparator}{Constants.PlatformConfFile}"; try { log4net.Config.XmlConfigurator.Configure(new FileInfo(configFilePath)); Repository = LogManager.GetRepository(); IAppender[] appenders = Repository.GetAppenders(); RollingFileAppender appender = appenders.First(item => item.Name.Equals(Constants.RootAppender)) as RollingFileAppender; string originalLogFile = appender.File; appender.File = logPath; appender.ActivateOptions(); if (File.Exists(originalLogFile)) { File.Delete(originalLogFile); } Logger = LogManager.GetLogger(Constants.PlatformLogName); SetOriginalLevel(); } catch (LogException ex) { TestflowRuntimeException exception = new TestflowRuntimeException(ModuleErrorCode.LogQueueInitFailed, ex.Message, ex); throw exception; } }