mirror of
https://github.com/adamhathcock/sharpcompress.git
synced 2026-02-13 13:35:28 +00:00
91 lines
2.3 KiB
C#
91 lines
2.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace SharpCompress.Compressor.LZMA
|
|
{
|
|
internal static class Log
|
|
{
|
|
private static Stack<string> _indent = new Stack<string>();
|
|
private static bool _needsIndent = true;
|
|
|
|
static Log()
|
|
{
|
|
_indent.Push("");
|
|
}
|
|
|
|
public static void PushIndent(string indent = " ")
|
|
{
|
|
_indent.Push(_indent.Peek() + indent);
|
|
}
|
|
|
|
public static void PopIndent()
|
|
{
|
|
if (_indent.Count == 1)
|
|
throw new InvalidOperationException();
|
|
|
|
_indent.Pop();
|
|
}
|
|
|
|
private static void EnsureIndent()
|
|
{
|
|
if (_needsIndent)
|
|
{
|
|
_needsIndent = false;
|
|
#if !PORTABLE && !NETFX_CORE
|
|
System.Diagnostics.Debug.Write(_indent.Peek());
|
|
#endif
|
|
}
|
|
}
|
|
|
|
public static void Write(object value)
|
|
{
|
|
EnsureIndent();
|
|
#if !PORTABLE && !NETFX_CORE
|
|
System.Diagnostics.Debug.Write(value);
|
|
#endif
|
|
}
|
|
|
|
public static void Write(string text)
|
|
{
|
|
EnsureIndent();
|
|
#if !PORTABLE && !NETFX_CORE
|
|
System.Diagnostics.Debug.Write(text);
|
|
#endif
|
|
}
|
|
|
|
public static void Write(string format, params object[] args)
|
|
{
|
|
EnsureIndent();
|
|
#if !PORTABLE && !NETFX_CORE
|
|
System.Diagnostics.Debug.Write(string.Format(format, args));
|
|
#endif
|
|
}
|
|
|
|
public static void WriteLine()
|
|
{
|
|
System.Diagnostics.Debug.WriteLine("");
|
|
_needsIndent = true;
|
|
}
|
|
|
|
public static void WriteLine(object value)
|
|
{
|
|
EnsureIndent();
|
|
System.Diagnostics.Debug.WriteLine(value);
|
|
_needsIndent = true;
|
|
}
|
|
|
|
public static void WriteLine(string text)
|
|
{
|
|
EnsureIndent();
|
|
System.Diagnostics.Debug.WriteLine(text);
|
|
_needsIndent = true;
|
|
}
|
|
|
|
public static void WriteLine(string format, params object[] args)
|
|
{
|
|
EnsureIndent();
|
|
System.Diagnostics.Debug.WriteLine(string.Format(format, args));
|
|
_needsIndent = true;
|
|
}
|
|
}
|
|
} |