private LogController()
 {
     _LogFormatProvider = new DefaultLogFormatProvider();
     _FileLog           = LogFactory.GetLogData(LogDataType.FILE);
     _InMemoryLog       = LogFactory.GetLogData(LogDataType.IN_MEMORY);
     LoadLogData();
 }
예제 #2
0
        void AddLogLines(string filename, List <string> lines, List <LogListViewItem> destination)
        {
            m_LogFormatProvider = FormatProviderFactory.GetLineConverter(lines, m_LogFormatProvider);

            var logParser = new LogParser(FormatProviderFactory.GetLineConverter(lines, m_LogFormatProvider));

            destination.AddRange(logParser.ParseLines(lines, filename, m_AllItems.Count));
        }
예제 #3
0
        /// <summary>
        ///     Formats the <see cref="ILogEvent" /> with the specified provider.
        /// </summary>
        /// <param name="provider">The provider.</param>
        /// <param name="logEvent">The log event.</param>
        /// <returns></returns>
        public string Format(ILogFormatProvider provider, ILogEvent logEvent)
        {
            var format        = provider.GetFormat();
            var formattedDate = FormatDate(logEvent.Date, provider.GetDateFormat());

            return(string.Format(format, formattedDate, logEvent.Topic, logEvent.Level, logEvent.Message,
                                 logEvent.ThreadId, logEvent.ProcessId, logEvent.Id, logEvent.PreciseTimestamp));
        }
예제 #4
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="ColoredConsoleAppender" /> class.
 /// </summary>
 /// <param name="provider">The provider.</param>
 /// <param name="console">The console.</param>
 public ColoredConsoleAppender(ILogFormatProvider provider = null, ISafeConsole console = null)
 {
     if (console == null)
     {
         console = SafeConsoleAdapter.Instance;
     }
     _console = console;
     if (provider == null)
     {
         provider = DefaultLogFormatProvider.Instance;
     }
     _provider = provider;
 }
예제 #5
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="FileAppender" /> class.
 /// </summary>
 /// <param name="file">The file.</param>
 /// <param name="provider">The provider.</param>
 public FileAppender(string file, ILogFormatProvider provider = null)
 {
     if (!Path.IsPathRooted(file))
     {
         // HACK: We do that to avoid streamwriterfactory to create file
         // where the System.IO nuget package cache location...
         // Depends on the test runner
         file = Path.Combine(Directory.GetCurrentDirectory(), file);
     }
     _file = file;
     if (provider == null)
     {
         provider = DefaultLogFormatProvider.Instance;
     }
     _provider = provider;
 }
예제 #6
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="RollingFileAppender" /> class.
        /// </summary>
        /// <param name="file">The file.</param>
        /// <param name="provider">The provider.</param>
        /// <param name="fileFactory">The file factory.</param>
        /// <param name="fileSystem">The file system.</param>
        /// <param name="directoryFileSystem">The directory file system.</param>
        /// <param name="timeProvider">The time provider.</param>
        public RollingFileAppender(
            string file,
            ILogFormatProvider provider,
            IFileInfoFactory fileFactory,
            IFile fileSystem,
            IDirectory directoryFileSystem,
            ITimeProvider timeProvider)
        {
            if (!Path.IsPathRooted(file))
            {
                // HACK: We do that to avoid streamwriterfactory to create file
                // where the System.IO nuget package cache location...
                // Depends on the test runner
                file = Path.Combine(directoryFileSystem.GetCurrentDirectory(), file);
            }
            var directory = Path.GetDirectoryName(file);

            if (!directoryFileSystem.Exists(directory))
            {
                directoryFileSystem.CreateDirectory(directory);
            }
            if (provider == null)
            {
                provider = DefaultLogFormatProvider.Instance;
            }
            var taskScheduler = new LimitedConcurrencyLevelTaskScheduler(1);

            _taskFactory  = new TaskFactory(taskScheduler);
            _provider     = provider;
            _fileSystem   = fileSystem;
            _timeProvider = timeProvider;
            _baseFile     = file;
            _fileFactory  = fileFactory;
            BuildFile();
            if (_file.Exists)
            {
                // Always roll on start logging
                RollFiles();
            }
            MaxLength = 1024 * 1024;
        }
예제 #7
0
 public LogParser(ILogFormatProvider logFormatProvider) => m_LogFormatProvider = logFormatProvider;
예제 #8
0
파일: LogBase.cs 프로젝트: JKamsker/UtiLib
 protected LogBase(ILogFormatProvider formatProvider)
 {
     FormatProvider = formatProvider ?? new DefaultFormatProvider();
 }
예제 #9
0
파일: LogBase.cs 프로젝트: JKamsker/UtiLib
 protected LogBase()
 {
     FormatProvider = new DefaultFormatProvider();
 }
예제 #10
0
파일: NoLog.cs 프로젝트: JKamsker/UtiLib
 public NoLog(ILogFormatProvider formatProvider) : base(formatProvider)
 {
 }
예제 #11
0
 public FileLogger(string filePath, ILogFormatProvider formatProvider)
 {
     this.filePath          = filePath;
     this.logFormatProvider = formatProvider;
 }
예제 #12
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="RollingFileAppender" /> class.
 /// </summary>
 /// <param name="file">The file.</param>
 /// <param name="provider">The provider.</param>
 public RollingFileAppender(string file,
                            ILogFormatProvider provider = null) :
     this(file, provider, new FileInfoFactory(), new FileAdapter(),
          new DirectoryAdapter(), new TimeProvider())
 {
 }
예제 #13
0
 public ConsoleLogger(ILogFormatProvider formatProvider) : base(formatProvider)
 {
 }
예제 #14
0
        public static ILogFormatProvider GetLineConverter(ICollection <string> logLines, ILogFormatProvider defaultProvider)
        {
            var result = defaultProvider ?? new JustMessageFormatProvider();

            if ((logLines == null) || (logLines.Count == 0))
            {
                return(result);
            }
            var firstNonEmptyLine = logLines.FirstOrDefault(l => !string.IsNullOrEmpty(l.Trim()));

            if (firstNonEmptyLine == null)
            {
                return(result);
            }

            foreach (FormatProviderType providerType in Enum.GetValues(typeof(FormatProviderType)))
            {
                var provider = GetLineConverter(providerType);
                if (provider.KnowsFormat(firstNonEmptyLine))
                {
                    return(provider);
                }
            }
            return(result);
        }