Microsoft.Common.Core.Logging.FileLogWriter.InTempFolder C# (CSharp) Method

InTempFolder() public static method

public static InTempFolder ( string fileName ) : FileLogWriter
fileName string
return FileLogWriter
        public static FileLogWriter InTempFolder(string fileName) {
            return _writers.GetOrAdd(fileName, _ => {
                var path = Path.Combine(Path.GetTempPath(), Invariant($@"{fileName}_{DateTime.Now:yyyyMdd_HHmmss}_pid{Process.GetCurrentProcess().Id}.log"));
                return new FileLogWriter(path);
            });
        }

Usage Example

Ejemplo n.º 1
0
        private async Task EnsureCreatedAsync()
        {
            var token = await _initializationLock.WaitAsync();

            try {
                if (!token.IsSet)
                {
                    // Delay-create log since permission is established when settings are loaded
                    // which may happen after ctor is called.
                    _logs = new IActionLogWriter[Enum.GetValues(typeof(LogVerbosity)).Length];
                    _logs[(int)LogVerbosity.None] = NullLogWriter.Instance;

                    IActionLogWriter mainWriter = NullLogWriter.Instance;
                    if (_permissions.CurrentVerbosity >= LogVerbosity.Minimal)
                    {
                        mainWriter = _writer ?? FileLogWriter.InTempFolder(_appName);
                    }

                    // Unfortunately, creation of event sources in OS logs requires local admin rights.
                    // http://www.christiano.ch/wordpress/2009/12/02/iis7-web-application-writing-to-event-log-generates-security-exception/
                    // So we can't use OS event logs as in Dev15 there is no MSI which could elevate..
                    // _maxLogLevel >= LogLevel.Minimal ? (_writer ?? new ApplicationLogWriter(_appName)) : NullLogWriter.Instance;
                    _logs[(int)LogVerbosity.Minimal] = mainWriter;
                    _logs[(int)LogVerbosity.Normal]  = _permissions.CurrentVerbosity >= LogVerbosity.Normal ? mainWriter : NullLogWriter.Instance;

                    if (_permissions.CurrentVerbosity == LogVerbosity.Traffic)
                    {
                        _logs[(int)LogVerbosity.Traffic] = _writer ?? FileLogWriter.InTempFolder(_appName + ".traffic");
                    }
                    else
                    {
                        _logs[(int)LogVerbosity.Traffic] = NullLogWriter.Instance;
                    }
                }
            } finally {
                token.Set();
            }
        }