예제 #1
0
        /// <summary>
        /// Use the specified <paramref name="logWriter"/>.
        /// </summary>
        /// <param name="logManagerConfig"></param>
        /// <param name="logWriter"></param>
        /// <returns>A <see cref="UseExistingLogWriterConfig"/> that will return <paramref name="logWriter"/> when the <see cref="LogManager"/> is started.</returns>
        public static UseExistingLogWriterConfig UseLogWriter(this LogManagerConfig logManagerConfig, ILogWriter logWriter)
        {
            Contract.Requires <ArgumentNullException>(logManagerConfig != null);
            Contract.Requires <ArgumentNullException>(logWriter != null);

            var useExistingConfig = new UseExistingLogWriterConfig(logWriter);

            logManagerConfig.Writers.Add(useExistingConfig);
            return(useExistingConfig);
        }
예제 #2
0
        public static TextWriterLogWriterConfig UseTextWriter(this LogManagerConfig logManagerConfig, Func <TextWriter> createTextWriterFunc)
        {
            Contract.Requires <ArgumentNullException>(logManagerConfig != null);
            Contract.Requires <ArgumentNullException>(createTextWriterFunc != null);

            var writerConfig = new TextWriterLogWriterConfig(createTextWriterFunc);

            logManagerConfig.Writers.Add(writerConfig);
            return(writerConfig);
        }
예제 #3
0
        public static TextWriterLogWriterConfig UseTextWriter(this LogManagerConfig logManagerConfig, TextWriter textWriter)
        {
            Contract.Requires <ArgumentNullException>(logManagerConfig != null);
            Contract.Requires <ArgumentNullException>(textWriter != null);

            var writerConfig = new TextWriterLogWriterConfig(textWriter);

            logManagerConfig.Writers.Add(writerConfig);
            return(writerConfig);
        }
예제 #4
0
        /// <summary>
        /// Ensures that a single <see cref="DebuggerLogWriterConfig" /> is configured in the <paramref name="logManagerConfig" />.
        /// </summary>
        /// <param name="logManagerConfig"></param>
        /// <returns></returns>
        public static DebuggerLogWriterConfig UseDebugger(this LogManagerConfig logManagerConfig)
        {
            Contract.Requires <ArgumentNullException>(logManagerConfig != null);

            var debuggerConfig = logManagerConfig.Writers.OfType <DebuggerLogWriterConfig>().FirstOrDefault();

            if (debuggerConfig == null)
            {
                debuggerConfig = new DebuggerLogWriterConfig();
                logManagerConfig.Writers.Add(debuggerConfig);
            }
            return(debuggerConfig);
        }
예제 #5
0
        /// <summary>
        /// Log to <paramref name="list"/>.
        /// </summary>
        /// <typeparam name="TEntry">The <see cref="ILogEntry"/> type to log to the list.</typeparam>
        /// <param name="logManagerConfig">The <see cref="LogManagerConfig"/> being configured.</param>
        /// <param name="list">A list object.</param>
        /// <returns>A <see cref="ListLogWriterConfig{TEntry}"/> holding the configuration for the <see cref="ListLogWriter{TEntry}"/>. Can be further configured.</returns>
        public static ListLogWriterConfig <TEntry> UseList <TEntry>(this LogManagerConfig logManagerConfig, IList <TEntry> list)
            where TEntry : ILogEntry
        {
            Contract.Requires <ArgumentNullException>(logManagerConfig != null);
            Contract.Requires <ArgumentNullException>(list != null);

            var listLogWriterConfig = new ListLogWriterConfig <TEntry>()
            {
                List = list
            };

            logManagerConfig.Writers.Add(listLogWriterConfig);
            return(listLogWriterConfig);
        }
예제 #6
0
        /// <summary>
        /// Ensures that a single <see cref="ConsoleLogWriterConfig" /> is configured in the <paramref name="logManagerConfig" />.
        /// </summary>
        /// <param name="logManagerConfig"></param>
        /// <param name="colorize"></param>
        /// <returns>The <see cref="ConsoleLogWriterConfig" />, which can be altered as needed.</returns>
        public static ConsoleLogWriterConfig UseConsole(this LogManagerConfig logManagerConfig, bool colorize = true)
        {
            Contract.Requires <ArgumentNullException>(logManagerConfig != null);

            var consoleWriterConfig = logManagerConfig.Writers.OfType <ConsoleLogWriterConfig>().FirstOrDefault();

            if (consoleWriterConfig == null)
            {
                consoleWriterConfig = new ConsoleLogWriterConfig();
                logManagerConfig.Writers.Add(consoleWriterConfig);
            }

            consoleWriterConfig.UseColor = colorize;

            return(consoleWriterConfig);
        }