コード例 #1
0
        public ILogQueueWriter GetLogQueueWriter <T>() where T : Log
        {
            var type = typeof(T);

            // Processor exists, return it.
            if (_queues.ContainsKey(type))
            {
                return(_queues[type]);
            }

            // Processor doesn't exist, create it, then return it.
            lock (_queues)
            {
                // Processor was created by the time we got a lock on the collection.
                if (_queues.ContainsKey(type))
                {
                    return(_queues[type]);
                }

                // Create a new processor.
                var queue  = new ConcurrentQueue <Log>();
                var writer = _logWriterFactory.CreateLogWriter <T>();

                var writerQueue = new LogQueueWriter(queue, writer);
                _queues.Add(type, writerQueue);
                return(writerQueue);
            }
        }
コード例 #2
0
ファイル: Logging.cs プロジェクト: chentaogithub/Octopus
        public static ILogWriter GetLogWriter()
        {
            if (_logWriter == null)
            {
                if (_logWriterFactory == null)
                {
                    _logWriterFactory = new ConsoleLogWriterFactory();
                }

                _logWriter = _logWriterFactory.CreateLogWriter();
            }

            return(_logWriter);
        }