Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
remove old Logger implementation, implement FileAppender
  • Loading branch information
arturcic committed Oct 18, 2019
commit 4032df2d390582a8d657e3403c51d794a699c228
23 changes: 0 additions & 23 deletions src/GitVersionCore.Tests/ModuleInitializer.cs

This file was deleted.

5 changes: 0 additions & 5 deletions src/GitVersionCore.Tests/TestBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,5 @@ namespace GitVersionCore.Tests
{
public class TestBase
{
static TestBase()
{
ModuleInitializer.Initialize();
}

}
}
10 changes: 0 additions & 10 deletions src/GitVersionCore/Configuration/ConfigFileLocator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,6 @@

namespace GitVersion.Configuration
{
public interface IConfigFileLocator
{
bool HasConfigFileAt(string workingDirectory);
string GetConfigFilePath(string workingDirectory);
void Verify(string workingDirectory, string projectRootDirectory);
string SelectConfigFilePath(GitPreparer gitPreparer);
Config ReadConfig(string workingDirectory);
void Verify(GitPreparer gitPreparer);
}

public abstract class ConfigFileLocator : IConfigFileLocator
{
protected readonly IFileSystem FileSystem;
Expand Down
12 changes: 12 additions & 0 deletions src/GitVersionCore/Configuration/IConfigFileLocator.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
namespace GitVersion.Configuration
{
public interface IConfigFileLocator
{
bool HasConfigFileAt(string workingDirectory);
string GetConfigFilePath(string workingDirectory);
void Verify(string workingDirectory, string projectRootDirectory);
string SelectConfigFilePath(GitPreparer gitPreparer);
Config ReadConfig(string workingDirectory);
void Verify(GitPreparer gitPreparer);
}
}
59 changes: 0 additions & 59 deletions src/GitVersionCore/Helpers/Logger.cs

This file was deleted.

36 changes: 35 additions & 1 deletion src/GitVersionCore/Log/FileAppender.cs
Original file line number Diff line number Diff line change
@@ -1,12 +1,46 @@
using System;
using System.IO;
using System.Threading;

namespace GitVersion.Log
{
public class FileAppender : ILogAppender
{
private static readonly ReaderWriterLock locker = new ReaderWriterLock();
private readonly string filePath;

public FileAppender(string filePath)
{
this.filePath = filePath;

var logFile = new FileInfo(Path.GetFullPath(filePath));

// NOTE: logFile.Directory will be null if the path is i.e. C:\logfile.log. @asbjornu
logFile.Directory?.Create();
if (logFile.Exists) return;

using (logFile.CreateText()) { }
}

public void WriteTo(LogLevel level, string message)
{
throw new NotImplementedException();
try
{
if (level != LogLevel.None)
{
WriteLogEntry(filePath, message);
}
}
catch (Exception ex)
{
//
}
}

private static void WriteLogEntry(string logFilePath, string str)
{
var contents = $"{DateTime.Now:yyyy-MM-dd HH:mm:ss}\t\t{str}\r\n";
File.AppendAllText(logFilePath, contents);
}
}
}
1 change: 1 addition & 0 deletions src/GitVersionCore/Log/ILog.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ public interface ILog
Verbosity Verbosity { get; set; }
void Write(Verbosity verbosity, LogLevel level, string format, params object[] args);
IDisposable IndentLog(string operationDescription);
void AddLogAppender(ILogAppender logAppender);
}
}
8 changes: 7 additions & 1 deletion src/GitVersionCore/Log/Log.cs
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace GitVersion.Log
{
public sealed class Log : ILog
{
private readonly IEnumerable<ILogAppender> appenders;
private IEnumerable<ILogAppender> appenders;
private readonly Regex ObscurePasswordRegex = new Regex("(https?://)(.+)(:.+@)", RegexOptions.Compiled);
private readonly StringBuilder sb;
private string indent = string.Empty;
Expand Down Expand Up @@ -52,6 +53,11 @@ public IDisposable IndentLog(string operationDescription)
});
}

public void AddLogAppender(ILogAppender logAppender)
{
appenders = appenders.Concat(new[] { logAppender });
}

public override string ToString()
{
return sb.ToString();
Expand Down
4 changes: 4 additions & 0 deletions src/GitVersionCore/Log/NullLog.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ public IDisposable IndentLog(string operationDescription)
return Disposable.Empty;
}

public void AddLogAppender(ILogAppender logAppender)
{
}

public string Indent { get; set; }
}
}
3 changes: 2 additions & 1 deletion src/GitVersionCore/VersionCalculation/MetaDataCalculator.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System.Linq;
using LibGit2Sharp;
using GitVersion.Helpers;
using GitVersion.Log;

namespace GitVersion.VersionCalculation
{
Expand All @@ -17,7 +18,7 @@ public SemanticVersionBuildMetaData Create(Commit baseVersionSource, GitVersionC

var commitLog = context.Repository.Commits.QueryBy(qf);
var commitsSinceTag = commitLog.Count();
Logger.Info($"{commitsSinceTag} commits found between {baseVersionSource.Sha} and {context.CurrentCommit.Sha}");
context.Log.Info($"{commitsSinceTag} commits found between {baseVersionSource.Sha} and {context.CurrentCommit.Sha}");

var shortSha = context.Repository.ObjectDatabase.ShortenObjectId(context.CurrentCommit);
return new SemanticVersionBuildMetaData(
Expand Down
4 changes: 2 additions & 2 deletions src/GitVersionExe/ExecCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ private static bool RunMsBuildIfNeeded(Arguments args, string workingDirectory,

log.Info($"Launching build tool {BuildTool} \"{args.Proj}\" {args.ProjArgs}");
var results = ProcessHelper.Run(
Logger.Info, Logger.Error,
m => log.Info(m), m => log.Error(m),
null, BuildTool, $"\"{args.Proj}\" {args.ProjArgs}", workingDirectory,
GetEnvironmentalVariables(variables));

Expand All @@ -141,7 +141,7 @@ private static bool RunExecCommandIfNeeded(Arguments args, string workingDirecto

log.Info($"Launching {args.Exec} {args.ExecArgs}");
var results = ProcessHelper.Run(
Logger.Info, Logger.Error,
m => log.Info(m), m => log.Error(m),
null, args.Exec, args.ExecArgs, workingDirectory,
GetEnvironmentalVariables(variables));

Expand Down
47 changes: 4 additions & 43 deletions src/GitVersionExe/GitVersionApplication.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using GitVersion.Common;
Expand All @@ -16,8 +15,8 @@ public class GitVersionApplication : IGitVersionApplication
private readonly IFileSystem fileSystem;
private readonly IEnvironment environment;
private readonly ILog log;
private IHelpWriter helpWriter;
private IVersionWriter versionWriter;
private readonly IHelpWriter helpWriter;
private readonly IVersionWriter versionWriter;

public GitVersionApplication(IFileSystem fileSystem, IEnvironment environment, ILog log)
{
Expand Down Expand Up @@ -150,53 +149,15 @@ private static void VerifyConfiguration(Arguments arguments, ILog log)

private static void ConfigureLogging(Arguments arguments, ILog log)
{
var writeActions = new List<Action<string>>
{
s => log.Info(s)
};

if (arguments.Output == OutputType.BuildServer || arguments.LogFilePath == "console" || arguments.Init)
{
writeActions.Add(Console.WriteLine);
log.AddLogAppender(new ConsoleAppender());
}

Exception exception = null;
if (arguments.LogFilePath != null && arguments.LogFilePath != "console")
{
try
{
var logFileFullPath = Path.GetFullPath(arguments.LogFilePath);
var logFile = new FileInfo(logFileFullPath);

// NOTE: logFile.Directory will be null if the path is i.e. C:\logfile.log. @asbjornu
logFile.Directory?.Create();

using (logFile.CreateText())
{
}

writeActions.Add(x => WriteLogEntry(arguments, x));
}
catch (Exception ex)
{
exception = ex;
}
log.AddLogAppender(new FileAppender(arguments.LogFilePath));
}

Logger.SetLoggers(
s => writeActions.ForEach(a => { if (arguments.Verbosity >= Verbosity.Diagnostic) a(s); }),
s => writeActions.ForEach(a => { if (arguments.Verbosity >= Verbosity.Normal) a(s); }),
s => writeActions.ForEach(a => { if (arguments.Verbosity >= Verbosity.Minimal) a(s); }),
s => writeActions.ForEach(a => { if (arguments.Verbosity >= Verbosity.Quiet) a(s); }));

if (exception != null)
log.Error($"Failed to configure logging for '{arguments.LogFilePath}': {exception.Message}");
}

private static void WriteLogEntry(Arguments arguments, string s)
{
var contents = $"{DateTime.Now:yyyy-MM-dd HH:mm:ss}\t\t{s}\r\n";
File.AppendAllText(arguments.LogFilePath, contents);
}
}
}
2 changes: 1 addition & 1 deletion src/GitVersionExe/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class Program
{
static void Main()
{
var log = new Log.Log(/*new ConsoleAppender()*/);
var log = new Log.Log();
var fileSystem = new FileSystem();
var environment = new Environment();
var argumentParser = new ArgumentParser(fileSystem, log);
Expand Down