- [Core] Add option to toggle logger events [GUI/CLI]
This commit is contained in:
@@ -21,7 +21,7 @@ namespace AssetStudio.CLI
|
||||
var rootCommand = new RootCommand()
|
||||
{
|
||||
optionsBinder.Silent,
|
||||
optionsBinder.Verbose,
|
||||
optionsBinder.LoggerFlags,
|
||||
optionsBinder.TypeFilter,
|
||||
optionsBinder.NameFilter,
|
||||
optionsBinder.ContainerFilter,
|
||||
@@ -49,7 +49,7 @@ namespace AssetStudio.CLI
|
||||
public class Options
|
||||
{
|
||||
public bool Silent { get; set; }
|
||||
public bool Verbose { get; set; }
|
||||
public LoggerEvent LoggerFlags { get; set; }
|
||||
public ClassIDType[] TypeFilter { get; set; }
|
||||
public Regex[] NameFilter { get; set; }
|
||||
public Regex[] ContainerFilter { get; set; }
|
||||
@@ -72,7 +72,7 @@ namespace AssetStudio.CLI
|
||||
public class OptionsBinder : BinderBase<Options>
|
||||
{
|
||||
public readonly Option<bool> Silent;
|
||||
public readonly Option<bool> Verbose;
|
||||
public readonly Option<LoggerEvent> LoggerFlags;
|
||||
public readonly Option<ClassIDType[]> TypeFilter;
|
||||
public readonly Option<Regex[]> NameFilter;
|
||||
public readonly Option<Regex[]> ContainerFilter;
|
||||
@@ -94,7 +94,7 @@ namespace AssetStudio.CLI
|
||||
public OptionsBinder()
|
||||
{
|
||||
Silent = new Option<bool>("--silent", "Hide log messages.");
|
||||
Verbose = new Option<bool>("--verbose", "Enable verbose logging.");
|
||||
LoggerFlags = new Option<LoggerEvent>("--logger_flags", "Flags to control toggle log events.");
|
||||
TypeFilter = new Option<ClassIDType[]>("--types", "Specify unity class type(s)") { AllowMultipleArgumentsPerToken = true, ArgumentHelpName = "Texture2D|Sprite|etc.." };
|
||||
NameFilter = new Option<Regex[]>("--names", result => result.Tokens.Select(x => new Regex(x.Value, RegexOptions.IgnoreCase)).ToArray(), false, "Specify name regex filter(s).") { AllowMultipleArgumentsPerToken = true };
|
||||
ContainerFilter = new Option<Regex[]>("--containers", result => result.Tokens.Select(x => new Regex(x.Value, RegexOptions.IgnoreCase)).ToArray(), false, "Specify container regex filter(s).") { AllowMultipleArgumentsPerToken = true };
|
||||
@@ -152,6 +152,7 @@ namespace AssetStudio.CLI
|
||||
|
||||
GameName.FromAmong(GameManager.GetGameNames());
|
||||
|
||||
LoggerFlags.SetDefaultValue(LoggerEvent.Default);
|
||||
GroupAssetsType.SetDefaultValue(AssetGroupOption.ByType);
|
||||
AssetExportType.SetDefaultValue(ExportType.Convert);
|
||||
MapOp.SetDefaultValue(MapOpType.None);
|
||||
@@ -186,7 +187,7 @@ namespace AssetStudio.CLI
|
||||
new()
|
||||
{
|
||||
Silent = bindingContext.ParseResult.GetValueForOption(Silent),
|
||||
Verbose = bindingContext.ParseResult.GetValueForOption(Verbose),
|
||||
LoggerFlags = bindingContext.ParseResult.GetValueForOption(LoggerFlags),
|
||||
TypeFilter = bindingContext.ParseResult.GetValueForOption(TypeFilter),
|
||||
NameFilter = bindingContext.ParseResult.GetValueForOption(NameFilter),
|
||||
ContainerFilter = bindingContext.ParseResult.GetValueForOption(ContainerFilter),
|
||||
|
||||
@@ -39,8 +39,7 @@ namespace AssetStudio.CLI
|
||||
}
|
||||
|
||||
Studio.Game = game;
|
||||
Logger.Default = new ConsoleLogger();
|
||||
Logger.LogVerbose = o.Verbose;
|
||||
Logger.Default = new ConsoleLogger() { Flags = o.LoggerFlags };
|
||||
Logger.FileLogging = Settings.Default.enableFileLogging;
|
||||
AssetsHelper.Minimal = Settings.Default.minimalAssetMap;
|
||||
AssetsHelper.SetUnityVersion(o.UnityVersion);
|
||||
|
||||
@@ -106,18 +106,18 @@
|
||||
<setting name="enableFileLogging" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
<setting name="enableVerbose" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="allowDuplicates" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="texs" serializeAs="String">
|
||||
<value>{}</value>
|
||||
</setting>
|
||||
<setting name="uvs" serializeAs="String">
|
||||
<value>{"UV0":{"Item1":true,"Item2":0},"UV1":{"Item1":true,"Item2":1},"UV2":{"Item1":false,"Item2":0},"UV3":{"Item1":false,"Item2":0},"UV4":{"Item1":false,"Item2":0},"UV5":{"Item1":false,"Item2":0},"UV6":{"Item1":false,"Item2":0},"UV7":{"Item1":false,"Item2":0}}</value>
|
||||
</setting>
|
||||
<setting name="allowDuplicates" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="loggerEventType" serializeAs="String">
|
||||
<value>30</value>
|
||||
</setting>
|
||||
</AssetStudio.GUI.Properties.Settings>
|
||||
</userSettings>
|
||||
</configuration>
|
||||
@@ -8,14 +8,17 @@ namespace AssetStudio.GUI
|
||||
public bool ShowErrorMessage = true;
|
||||
private Action<string> action;
|
||||
|
||||
public bool Silent { get; set; }
|
||||
public LoggerEvent Flags { get; set; }
|
||||
|
||||
public GUILogger(Action<string> action)
|
||||
{
|
||||
this.action = action;
|
||||
}
|
||||
|
||||
public void Log(LoggerEvent loggerEvent, string message, bool silent = false)
|
||||
public void Log(LoggerEvent loggerEvent, string message)
|
||||
{
|
||||
if (silent)
|
||||
if (!Flags.HasFlag(loggerEvent) || Silent)
|
||||
return;
|
||||
|
||||
switch (loggerEvent)
|
||||
|
||||
40
AssetStudio.GUI/MainForm.Designer.cs
generated
40
AssetStudio.GUI/MainForm.Designer.cs
generated
@@ -51,6 +51,7 @@ namespace AssetStudio.GUI
|
||||
toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator();
|
||||
displayInfo = new System.Windows.Forms.ToolStripMenuItem();
|
||||
enableResolveDependencies = new System.Windows.Forms.ToolStripMenuItem();
|
||||
allowDuplicates = new System.Windows.Forms.ToolStripMenuItem();
|
||||
skipContainer = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator();
|
||||
toolStripMenuItem14 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
@@ -105,7 +106,7 @@ namespace AssetStudio.GUI
|
||||
enableConsole = new System.Windows.Forms.ToolStripMenuItem();
|
||||
clearConsoleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
enableFileLogging = new System.Windows.Forms.ToolStripMenuItem();
|
||||
enableVerbose = new System.Windows.Forms.ToolStripMenuItem();
|
||||
loggedEventsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
miscToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
MapNameComboBox = new System.Windows.Forms.ToolStripComboBox();
|
||||
buildMapToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
@@ -173,7 +174,6 @@ namespace AssetStudio.GUI
|
||||
exportAnimatorwithselectedAnimationClipMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
goToSceneHierarchyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
showOriginalFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
allowDuplicates = new System.Windows.Forms.ToolStripMenuItem();
|
||||
menuStrip1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit();
|
||||
splitContainer1.Panel1.SuspendLayout();
|
||||
@@ -338,6 +338,15 @@ namespace AssetStudio.GUI
|
||||
enableResolveDependencies.ToolTipText = "Toggle the behaviour of loading assets.\r\nDisable to load file(s) without its dependencies.";
|
||||
enableResolveDependencies.CheckedChanged += enableResolveDependencies_CheckedChanged;
|
||||
//
|
||||
// allowDuplicates
|
||||
//
|
||||
allowDuplicates.CheckOnClick = true;
|
||||
allowDuplicates.Name = "allowDuplicates";
|
||||
allowDuplicates.Size = new System.Drawing.Size(225, 22);
|
||||
allowDuplicates.Text = "Allow duplicates";
|
||||
allowDuplicates.ToolTipText = "Toggle the behaviour of exporting assets.\r\nEnable to allow assets with duplicate names to be exported.";
|
||||
allowDuplicates.CheckedChanged += allowDuplicates_CheckedChanged;
|
||||
//
|
||||
// skipContainer
|
||||
//
|
||||
skipContainer.CheckOnClick = true;
|
||||
@@ -660,13 +669,13 @@ namespace AssetStudio.GUI
|
||||
allToolStripMenuItem.CheckOnClick = true;
|
||||
allToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
allToolStripMenuItem.Name = "allToolStripMenuItem";
|
||||
allToolStripMenuItem.Size = new System.Drawing.Size(88, 22);
|
||||
allToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
allToolStripMenuItem.Text = "All";
|
||||
allToolStripMenuItem.Click += typeToolStripMenuItem_Click;
|
||||
//
|
||||
// debugMenuItem
|
||||
//
|
||||
debugMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripMenuItem15, exportClassStructuresMenuItem, enableConsole, clearConsoleToolStripMenuItem, enableFileLogging, enableVerbose });
|
||||
debugMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripMenuItem15, exportClassStructuresMenuItem, enableConsole, clearConsoleToolStripMenuItem, enableFileLogging, loggedEventsMenuItem });
|
||||
debugMenuItem.Name = "debugMenuItem";
|
||||
debugMenuItem.Size = new System.Drawing.Size(54, 20);
|
||||
debugMenuItem.Text = "Debug";
|
||||
@@ -715,13 +724,13 @@ namespace AssetStudio.GUI
|
||||
enableFileLogging.Text = "Enable file logging";
|
||||
enableFileLogging.CheckedChanged += enableFileLogging_CheckedChanged;
|
||||
//
|
||||
// enableVerbose
|
||||
// loggedEventsMenuItem
|
||||
//
|
||||
enableVerbose.CheckOnClick = true;
|
||||
enableVerbose.Name = "enableVerbose";
|
||||
enableVerbose.Size = new System.Drawing.Size(191, 22);
|
||||
enableVerbose.Text = "Enable Verbose";
|
||||
enableVerbose.CheckedChanged += enableVerbose_Click;
|
||||
loggedEventsMenuItem.Name = "loggedEventsMenuItem";
|
||||
loggedEventsMenuItem.Size = new System.Drawing.Size(191, 22);
|
||||
loggedEventsMenuItem.Text = "Logged events";
|
||||
loggedEventsMenuItem.DropDown.Closing += loggedEventsMenuItem_DropDownClosing;
|
||||
loggedEventsMenuItem.DropDownClosed += loggedEventsMenuItem_DropDownClosed;
|
||||
//
|
||||
// miscToolStripMenuItem
|
||||
//
|
||||
@@ -1353,15 +1362,6 @@ namespace AssetStudio.GUI
|
||||
showOriginalFileToolStripMenuItem.Visible = false;
|
||||
showOriginalFileToolStripMenuItem.Click += showOriginalFileToolStripMenuItem_Click;
|
||||
//
|
||||
// allowDuplicates
|
||||
//
|
||||
allowDuplicates.CheckOnClick = true;
|
||||
allowDuplicates.Name = "allowDuplicates";
|
||||
allowDuplicates.Size = new System.Drawing.Size(225, 22);
|
||||
allowDuplicates.Text = "Allow duplicates";
|
||||
allowDuplicates.ToolTipText = "Toggle the behaviour of exporting assets.\r\nEnable to allow assets with duplicate names to be exported.";
|
||||
allowDuplicates.CheckedChanged += allowDuplicates_CheckedChanged;
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
AllowDrop = true;
|
||||
@@ -1548,7 +1548,7 @@ namespace AssetStudio.GUI
|
||||
private System.Windows.Forms.ToolStripMenuItem specifyUnityCNKey;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator13;
|
||||
private System.Windows.Forms.ToolStripMenuItem enableFileLogging;
|
||||
private System.Windows.Forms.ToolStripMenuItem enableVerbose;
|
||||
private System.Windows.Forms.ToolStripMenuItem loggedEventsMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem sceneHierarchy;
|
||||
private System.Windows.Forms.ToolStripMenuItem assetMapTypeMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem loadCABMapToolStripMenuItem;
|
||||
|
||||
@@ -98,7 +98,6 @@ namespace AssetStudio.GUI
|
||||
{
|
||||
enableConsole.Checked = Properties.Settings.Default.enableConsole;
|
||||
enableFileLogging.Checked = Properties.Settings.Default.enableFileLogging;
|
||||
enableVerbose.Checked = Properties.Settings.Default.enableVerbose;
|
||||
displayAll.Checked = Properties.Settings.Default.displayAll;
|
||||
displayInfo.Checked = Properties.Settings.Default.displayInfo;
|
||||
enablePreview.Checked = Properties.Settings.Default.enablePreview;
|
||||
@@ -130,7 +129,14 @@ namespace AssetStudio.GUI
|
||||
Logger.Default = logger;
|
||||
ConsoleHelper.ShowWindow(handle, ConsoleHelper.SW_HIDE);
|
||||
}
|
||||
Logger.LogVerbose = enableVerbose.Checked;
|
||||
var loggerEventType = (LoggerEvent)Properties.Settings.Default.loggerEventType;
|
||||
var loggerEventTypes = Enum.GetValues<LoggerEvent>().ToArray()[1..^2];
|
||||
foreach (var loggerEvent in loggerEventTypes)
|
||||
{
|
||||
var menuItem = new ToolStripMenuItem(loggerEvent.ToString()) { CheckOnClick = true, Checked = loggerEventType.HasFlag(loggerEvent), Tag = (int)loggerEvent };
|
||||
loggedEventsMenuItem.DropDownItems.Add(menuItem);
|
||||
}
|
||||
Logger.Default.Flags = loggerEventType;
|
||||
Logger.FileLogging = enableFileLogging.Checked;
|
||||
}
|
||||
|
||||
@@ -2325,12 +2331,20 @@ namespace AssetStudio.GUI
|
||||
Logger.FileLogging = enableFileLogging.Checked;
|
||||
}
|
||||
|
||||
private void enableVerbose_Click(object sender, EventArgs e)
|
||||
private void loggedEventsMenuItem_DropDownClosing(object sender, ToolStripDropDownClosingEventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.enableVerbose = enableVerbose.Checked;
|
||||
if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked)
|
||||
{
|
||||
e.Cancel = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void loggedEventsMenuItem_DropDownClosed(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.loggerEventType = loggedEventsMenuItem.DropDownItems.Cast<ToolStripMenuItem>().Select(x => x.Checked ? (int)x.Tag : 0).Sum();
|
||||
Properties.Settings.Default.Save();
|
||||
|
||||
Logger.LogVerbose = enableVerbose.Checked;
|
||||
Logger.Default.Flags = (LoggerEvent)Properties.Settings.Default.loggerEventType;
|
||||
}
|
||||
|
||||
private void abortStripMenuItem_Click(object sender, EventArgs e)
|
||||
|
||||
@@ -120,6 +120,9 @@
|
||||
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>312, 17</value>
|
||||
</metadata>
|
||||
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>432, 17</value>
|
||||
</metadata>
|
||||
<data name="fontPreviewBox.Text" xml:space="preserve">
|
||||
<value>abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWYZ
|
||||
1234567890.:,;'\"(!?)+-*/=
|
||||
@@ -138,9 +141,6 @@ The quick brown fox jumps over the lazy dog. 1234567890
|
||||
|
||||
The quick brown fox jumps over the lazy dog. 1234567890</value>
|
||||
</data>
|
||||
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>432, 17</value>
|
||||
</metadata>
|
||||
<metadata name="timer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>553, 17</value>
|
||||
</metadata>
|
||||
|
||||
24
AssetStudio.GUI/Properties/Settings.Designer.cs
generated
24
AssetStudio.GUI/Properties/Settings.Designer.cs
generated
@@ -431,18 +431,6 @@ namespace AssetStudio.GUI.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool enableVerbose {
|
||||
get {
|
||||
return ((bool)(this["enableVerbose"]));
|
||||
}
|
||||
set {
|
||||
this["enableVerbose"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("{}")]
|
||||
@@ -481,5 +469,17 @@ namespace AssetStudio.GUI.Properties {
|
||||
this["allowDuplicates"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("30")]
|
||||
public int loggerEventType {
|
||||
get {
|
||||
return ((int)(this["loggerEventType"]));
|
||||
}
|
||||
set {
|
||||
this["loggerEventType"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,9 +104,6 @@
|
||||
<Setting Name="enableFileLogging" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="enableVerbose" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="texs" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">{}</Value>
|
||||
</Setting>
|
||||
@@ -116,5 +113,8 @@
|
||||
<Setting Name="allowDuplicates" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="loggerEventType" Type="System.Int32" Scope="User">
|
||||
<Value Profile="(Default)">30</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
@@ -6,30 +6,40 @@ using System.Text;
|
||||
|
||||
namespace AssetStudio
|
||||
{
|
||||
[Flags]
|
||||
public enum LoggerEvent
|
||||
{
|
||||
Verbose,
|
||||
Debug,
|
||||
Info,
|
||||
Warning,
|
||||
Error,
|
||||
None = 0,
|
||||
Verbose = 1,
|
||||
Debug = 2,
|
||||
Info = 4,
|
||||
Warning = 8,
|
||||
Error = 16,
|
||||
Default = Debug | Info | Warning | Error,
|
||||
All = Verbose | Debug | Info | Warning | Error,
|
||||
}
|
||||
|
||||
public interface ILogger
|
||||
{
|
||||
void Log(LoggerEvent loggerEvent, string message, bool silent = false);
|
||||
public bool Silent { get; set; }
|
||||
public LoggerEvent Flags { get; set; }
|
||||
void Log(LoggerEvent loggerEvent, string message);
|
||||
}
|
||||
|
||||
public sealed class DummyLogger : ILogger
|
||||
{
|
||||
public void Log(LoggerEvent loggerEvent, string message, bool silent = false) { }
|
||||
public bool Silent { get; set; }
|
||||
public LoggerEvent Flags { get; set; }
|
||||
public void Log(LoggerEvent loggerEvent, string message) { }
|
||||
}
|
||||
|
||||
public sealed class ConsoleLogger : ILogger
|
||||
{
|
||||
public void Log(LoggerEvent loggerEvent, string message, bool silent = false)
|
||||
public bool Silent { get; set; }
|
||||
public LoggerEvent Flags { get; set; }
|
||||
public void Log(LoggerEvent loggerEvent, string message)
|
||||
{
|
||||
if (silent)
|
||||
if (!Flags.HasFlag(loggerEvent) || Silent)
|
||||
return;
|
||||
|
||||
Console.WriteLine("[{0}] {1}", loggerEvent, message);
|
||||
@@ -41,9 +51,10 @@ namespace AssetStudio
|
||||
private const string LogFileName = "log.txt";
|
||||
private const string PrevLogFileName = "log_prev.txt";
|
||||
private readonly object LockWriter = new object();
|
||||
private StreamWriter Writer;
|
||||
|
||||
public StreamWriter Writer;
|
||||
|
||||
public bool Silent { get; set; }
|
||||
public LoggerEvent Flags { get; set; }
|
||||
public FileLogger()
|
||||
{
|
||||
var logPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, LogFileName);
|
||||
@@ -57,11 +68,11 @@ namespace AssetStudio
|
||||
}
|
||||
~FileLogger()
|
||||
{
|
||||
Writer?.Dispose();
|
||||
Dispose();
|
||||
}
|
||||
public void Log(LoggerEvent loggerEvent, string message, bool silent = false)
|
||||
public void Log(LoggerEvent loggerEvent, string message)
|
||||
{
|
||||
if (silent)
|
||||
if (!Flags.HasFlag(loggerEvent) || Silent)
|
||||
return;
|
||||
|
||||
lock (LockWriter)
|
||||
@@ -69,5 +80,10 @@ namespace AssetStudio
|
||||
Writer.WriteLine($"[{DateTime.Now}][{loggerEvent}] {message}");
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
Writer?.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,8 +12,12 @@ namespace AssetStudio
|
||||
|
||||
public static ILogger Default = new DummyLogger();
|
||||
public static ILogger File;
|
||||
public static bool Silent = false;
|
||||
public static bool LogVerbose = false;
|
||||
|
||||
public static bool Silent
|
||||
{
|
||||
get => Default.Silent;
|
||||
set => Default.Silent = value;
|
||||
}
|
||||
|
||||
public static bool FileLogging
|
||||
{
|
||||
@@ -36,15 +40,13 @@ namespace AssetStudio
|
||||
}
|
||||
else
|
||||
{
|
||||
((FileLogger)File)?.Writer?.Dispose();
|
||||
((FileLogger)File)?.Dispose();
|
||||
File = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void Verbose(string message)
|
||||
{
|
||||
if (LogVerbose)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -57,28 +59,27 @@ namespace AssetStudio
|
||||
}
|
||||
catch (Exception) { }
|
||||
if (FileLogging) File.Log(LoggerEvent.Verbose, message);
|
||||
Default.Log(LoggerEvent.Verbose, message, Silent);
|
||||
}
|
||||
Default.Log(LoggerEvent.Verbose, message);
|
||||
}
|
||||
public static void Debug(string message)
|
||||
{
|
||||
if (FileLogging) File.Log(LoggerEvent.Debug, message);
|
||||
Default.Log(LoggerEvent.Debug, message, Silent);
|
||||
Default.Log(LoggerEvent.Debug, message);
|
||||
}
|
||||
public static void Info(string message)
|
||||
{
|
||||
if (FileLogging) File.Log(LoggerEvent.Info, message);
|
||||
Default.Log(LoggerEvent.Info, message, Silent);
|
||||
Default.Log(LoggerEvent.Info, message);
|
||||
}
|
||||
public static void Warning(string message)
|
||||
{
|
||||
if (FileLogging) File.Log(LoggerEvent.Warning, message);
|
||||
Default.Log(LoggerEvent.Warning, message, Silent);
|
||||
Default.Log(LoggerEvent.Warning, message);
|
||||
}
|
||||
public static void Error(string message)
|
||||
{
|
||||
if (FileLogging) File.Log(LoggerEvent.Error, message);
|
||||
Default.Log(LoggerEvent.Error, message, Silent);
|
||||
Default.Log(LoggerEvent.Error, message);
|
||||
}
|
||||
|
||||
public static void Error(string message, Exception e)
|
||||
@@ -89,7 +90,7 @@ namespace AssetStudio
|
||||
|
||||
message = sb.ToString();
|
||||
if (FileLogging) File.Log(LoggerEvent.Error, message);
|
||||
Default.Log(LoggerEvent.Error, message, Silent);
|
||||
Default.Log(LoggerEvent.Error, message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user