// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; using System.Collections.Generic; using System.Threading.Tasks; using System.IO; using Microsoft.Framework.Logging; namespace Microsoft.AspNet.Identity.Test { public class TestFileLoggerFactory : ILoggerFactory, IDisposable { private static Dictionary _loggers; static TestFileLoggerFactory() { _loggers = new Dictionary(); } public void AddProvider(ILoggerProvider provider) { } public ILogger Create(string name) { if (!_loggers.ContainsKey(name)) { try { _loggers.Add(name, new TestFileLogger(name)); } catch (ArgumentException ex) { // Silently skip if there is already a logger with that key } } return _loggers[name]; } public void Dispose() { Parallel.ForEach(_loggers.Values, l => { if(l is TestFileLogger) { var logger = l as TestFileLogger; File.Delete(logger.FileName); } }); } } }