using System; using System.IO; using System.Reflection; using JD.Core.Logging; using JD.Interfaces.Logging; using Plume.Core.Logging; namespace JD.Perforce { /// /// TODO : Maybe move this class to JD.Core if necessary /// TODO: This class has to be removed asap. /// Temporary class in order to make the tools that use P4Manager to work again. /// public class PlumeLoggerAdapter : ILogger { private readonly FileLog _logger; public PlumeLoggerAdapter(FileLog logger) { _logger = logger; } /// public void Debug(string message, Exception exception = null) { LogEntry logEntry = new LogEntry { Level = LogLevel.Debug, Message = $"{message} {exception?.Message}", }; _logger.Log(logEntry); } /// public void Error(string message, Exception exception = null) { LogEntry logEntry = new LogEntry { Level = LogLevel.Error, Message = $"{message} {exception?.Message}", }; _logger.Log(logEntry); } /// public void Fatal(string message, Exception exception = null) { LogEntry logEntry = new LogEntry { Level = LogLevel.Fatal, Message = $"{message} {exception?.Message}", }; _logger.Log(logEntry); } /// public void Info(string message, Exception exception = null) { LogEntry logEntry = new LogEntry { Level = LogLevel.Message, Message = $"{message} {exception?.Message}", }; _logger.Log(logEntry); } /// public void Trace(string message, Exception exception = null) { LogEntry logEntry = new LogEntry { Level = LogLevel.Debug, Message = $"{message} {exception?.Message}", }; _logger.Log(logEntry); } /// public void Warn(string message, Exception exception = null) { LogEntry logEntry = new LogEntry { Level = LogLevel.Warning, Message = $"{message} {exception?.Message}", }; _logger.Log(logEntry); } /// public string Name { get; } public static PlumeLoggerAdapter Create() { string filePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "log"); return Create(filePath); } public static PlumeLoggerAdapter Create(string path, string fileName = null) { if (string.IsNullOrEmpty(path)) { throw new ArgumentNullException(nameof(path)); } if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } if (fileName == null) { fileName = $"{AppDomain.CurrentDomain.FriendlyName.Replace('.', '_')}_{DateTime.Now:yyyyMMdd_HHmmss_fff}.txt"; } string logFilePath = Path.Combine(path, fileName); FileLog fileLog = new FileLog(logFilePath); return new PlumeLoggerAdapter(fileLog); } } }