Added few options to Logger

This commit is contained in:
Jaex 2015-11-22 22:28:04 +02:00
parent c101742d2c
commit 70f4f13a08
2 changed files with 21 additions and 22 deletions

View file

@ -33,12 +33,9 @@ namespace ShareX.HelpersLib
{
public partial class DebugForm : BaseForm
{
private Logger logger;
public DebugForm(Logger logger)
{
InitializeComponent();
this.logger = logger;
rtbDebug.Text = logger.ToString();
rtbDebug.SelectionStart = rtbDebug.TextLength;
@ -46,11 +43,7 @@ public DebugForm(Logger logger)
rtbDebug.AddContextMenu();
logger.MessageAdded += logger_MessageAdded;
}
private void DebugForm_FormClosing(object sender, FormClosingEventArgs e)
{
logger.MessageAdded -= logger_MessageAdded;
FormClosing += (sender, e) => logger.MessageAdded -= logger_MessageAdded;
}
private void logger_MessageAdded(string message)

View file

@ -36,19 +36,22 @@ public class Logger
public event MessageAddedEventHandler MessageAdded;
public bool Async { get; set; }
public bool Async { get; set; } = true;
public bool DebugWrite { get; set; } = true;
public bool StoreInMemory { get; set; } = true;
public bool FileWrite { get; set; } = false;
public string LogFilePath { get; private set; }
private readonly object loggerLock = new object();
private StringBuilder sbMessages = new StringBuilder(4096);
private StringBuilder sbMessages = new StringBuilder();
public Logger()
{
Async = true;
}
public Logger(string logFilePath) : this()
public Logger(string logFilePath)
{
FileWrite = true;
LogFilePath = logFilePath;
Helpers.CreateDirectoryIfNotExist(LogFilePath);
}
@ -61,7 +64,7 @@ protected void OnMessageAdded(string message)
}
}
public void WriteLine(string message = "")
public void WriteLine(string message)
{
if (!string.IsNullOrEmpty(message))
{
@ -80,25 +83,28 @@ private void WriteLineInternal(string message)
{
lock (loggerLock)
{
message = string.Format("{0:yyyy-MM-dd HH:mm:ss.fff} - {1}", DateTime.Now, message);
message = $"{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff} - {message}";
Debug.WriteLine(message);
if (DebugWrite)
{
Debug.WriteLine(message);
}
if (sbMessages != null)
if (StoreInMemory && sbMessages != null)
{
sbMessages.AppendLine(message);
}
try
if (FileWrite && !string.IsNullOrEmpty(LogFilePath))
{
if (!string.IsNullOrEmpty(LogFilePath))
try
{
File.AppendAllText(LogFilePath, message + Environment.NewLine, Encoding.UTF8);
}
}
catch (Exception e)
{
Debug.WriteLine(e);
catch (Exception e)
{
Debug.WriteLine(e);
}
}
OnMessageAdded(message);