- [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()
|
var rootCommand = new RootCommand()
|
||||||
{
|
{
|
||||||
optionsBinder.Silent,
|
optionsBinder.Silent,
|
||||||
optionsBinder.Verbose,
|
optionsBinder.LoggerFlags,
|
||||||
optionsBinder.TypeFilter,
|
optionsBinder.TypeFilter,
|
||||||
optionsBinder.NameFilter,
|
optionsBinder.NameFilter,
|
||||||
optionsBinder.ContainerFilter,
|
optionsBinder.ContainerFilter,
|
||||||
@@ -49,7 +49,7 @@ namespace AssetStudio.CLI
|
|||||||
public class Options
|
public class Options
|
||||||
{
|
{
|
||||||
public bool Silent { get; set; }
|
public bool Silent { get; set; }
|
||||||
public bool Verbose { get; set; }
|
public LoggerEvent LoggerFlags { get; set; }
|
||||||
public ClassIDType[] TypeFilter { get; set; }
|
public ClassIDType[] TypeFilter { get; set; }
|
||||||
public Regex[] NameFilter { get; set; }
|
public Regex[] NameFilter { get; set; }
|
||||||
public Regex[] ContainerFilter { get; set; }
|
public Regex[] ContainerFilter { get; set; }
|
||||||
@@ -72,7 +72,7 @@ namespace AssetStudio.CLI
|
|||||||
public class OptionsBinder : BinderBase<Options>
|
public class OptionsBinder : BinderBase<Options>
|
||||||
{
|
{
|
||||||
public readonly Option<bool> Silent;
|
public readonly Option<bool> Silent;
|
||||||
public readonly Option<bool> Verbose;
|
public readonly Option<LoggerEvent> LoggerFlags;
|
||||||
public readonly Option<ClassIDType[]> TypeFilter;
|
public readonly Option<ClassIDType[]> TypeFilter;
|
||||||
public readonly Option<Regex[]> NameFilter;
|
public readonly Option<Regex[]> NameFilter;
|
||||||
public readonly Option<Regex[]> ContainerFilter;
|
public readonly Option<Regex[]> ContainerFilter;
|
||||||
@@ -94,7 +94,7 @@ namespace AssetStudio.CLI
|
|||||||
public OptionsBinder()
|
public OptionsBinder()
|
||||||
{
|
{
|
||||||
Silent = new Option<bool>("--silent", "Hide log messages.");
|
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.." };
|
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 };
|
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 };
|
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());
|
GameName.FromAmong(GameManager.GetGameNames());
|
||||||
|
|
||||||
|
LoggerFlags.SetDefaultValue(LoggerEvent.Default);
|
||||||
GroupAssetsType.SetDefaultValue(AssetGroupOption.ByType);
|
GroupAssetsType.SetDefaultValue(AssetGroupOption.ByType);
|
||||||
AssetExportType.SetDefaultValue(ExportType.Convert);
|
AssetExportType.SetDefaultValue(ExportType.Convert);
|
||||||
MapOp.SetDefaultValue(MapOpType.None);
|
MapOp.SetDefaultValue(MapOpType.None);
|
||||||
@@ -186,7 +187,7 @@ namespace AssetStudio.CLI
|
|||||||
new()
|
new()
|
||||||
{
|
{
|
||||||
Silent = bindingContext.ParseResult.GetValueForOption(Silent),
|
Silent = bindingContext.ParseResult.GetValueForOption(Silent),
|
||||||
Verbose = bindingContext.ParseResult.GetValueForOption(Verbose),
|
LoggerFlags = bindingContext.ParseResult.GetValueForOption(LoggerFlags),
|
||||||
TypeFilter = bindingContext.ParseResult.GetValueForOption(TypeFilter),
|
TypeFilter = bindingContext.ParseResult.GetValueForOption(TypeFilter),
|
||||||
NameFilter = bindingContext.ParseResult.GetValueForOption(NameFilter),
|
NameFilter = bindingContext.ParseResult.GetValueForOption(NameFilter),
|
||||||
ContainerFilter = bindingContext.ParseResult.GetValueForOption(ContainerFilter),
|
ContainerFilter = bindingContext.ParseResult.GetValueForOption(ContainerFilter),
|
||||||
|
|||||||
@@ -39,8 +39,7 @@ namespace AssetStudio.CLI
|
|||||||
}
|
}
|
||||||
|
|
||||||
Studio.Game = game;
|
Studio.Game = game;
|
||||||
Logger.Default = new ConsoleLogger();
|
Logger.Default = new ConsoleLogger() { Flags = o.LoggerFlags };
|
||||||
Logger.LogVerbose = o.Verbose;
|
|
||||||
Logger.FileLogging = Settings.Default.enableFileLogging;
|
Logger.FileLogging = Settings.Default.enableFileLogging;
|
||||||
AssetsHelper.Minimal = Settings.Default.minimalAssetMap;
|
AssetsHelper.Minimal = Settings.Default.minimalAssetMap;
|
||||||
AssetsHelper.SetUnityVersion(o.UnityVersion);
|
AssetsHelper.SetUnityVersion(o.UnityVersion);
|
||||||
|
|||||||
@@ -106,18 +106,18 @@
|
|||||||
<setting name="enableFileLogging" serializeAs="String">
|
<setting name="enableFileLogging" serializeAs="String">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</setting>
|
</setting>
|
||||||
<setting name="enableVerbose" serializeAs="String">
|
|
||||||
<value>False</value>
|
|
||||||
</setting>
|
|
||||||
<setting name="allowDuplicates" serializeAs="String">
|
|
||||||
<value>False</value>
|
|
||||||
</setting>
|
|
||||||
<setting name="texs" serializeAs="String">
|
<setting name="texs" serializeAs="String">
|
||||||
<value>{}</value>
|
<value>{}</value>
|
||||||
</setting>
|
</setting>
|
||||||
<setting name="uvs" serializeAs="String">
|
<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>
|
<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>
|
||||||
|
<setting name="allowDuplicates" serializeAs="String">
|
||||||
|
<value>False</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="loggerEventType" serializeAs="String">
|
||||||
|
<value>30</value>
|
||||||
|
</setting>
|
||||||
</AssetStudio.GUI.Properties.Settings>
|
</AssetStudio.GUI.Properties.Settings>
|
||||||
</userSettings>
|
</userSettings>
|
||||||
</configuration>
|
</configuration>
|
||||||
@@ -8,14 +8,17 @@ namespace AssetStudio.GUI
|
|||||||
public bool ShowErrorMessage = true;
|
public bool ShowErrorMessage = true;
|
||||||
private Action<string> action;
|
private Action<string> action;
|
||||||
|
|
||||||
|
public bool Silent { get; set; }
|
||||||
|
public LoggerEvent Flags { get; set; }
|
||||||
|
|
||||||
public GUILogger(Action<string> action)
|
public GUILogger(Action<string> action)
|
||||||
{
|
{
|
||||||
this.action = 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;
|
return;
|
||||||
|
|
||||||
switch (loggerEvent)
|
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();
|
toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
displayInfo = new System.Windows.Forms.ToolStripMenuItem();
|
displayInfo = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
enableResolveDependencies = new System.Windows.Forms.ToolStripMenuItem();
|
enableResolveDependencies = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
allowDuplicates = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
skipContainer = new System.Windows.Forms.ToolStripMenuItem();
|
skipContainer = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator();
|
toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
toolStripMenuItem14 = new System.Windows.Forms.ToolStripMenuItem();
|
toolStripMenuItem14 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
@@ -105,7 +106,7 @@ namespace AssetStudio.GUI
|
|||||||
enableConsole = new System.Windows.Forms.ToolStripMenuItem();
|
enableConsole = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
clearConsoleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
clearConsoleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
enableFileLogging = 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();
|
miscToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
MapNameComboBox = new System.Windows.Forms.ToolStripComboBox();
|
MapNameComboBox = new System.Windows.Forms.ToolStripComboBox();
|
||||||
buildMapToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
buildMapToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
@@ -173,7 +174,6 @@ namespace AssetStudio.GUI
|
|||||||
exportAnimatorwithselectedAnimationClipMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
exportAnimatorwithselectedAnimationClipMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
goToSceneHierarchyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
goToSceneHierarchyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
showOriginalFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
showOriginalFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
allowDuplicates = new System.Windows.Forms.ToolStripMenuItem();
|
|
||||||
menuStrip1.SuspendLayout();
|
menuStrip1.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit();
|
((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit();
|
||||||
splitContainer1.Panel1.SuspendLayout();
|
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.ToolTipText = "Toggle the behaviour of loading assets.\r\nDisable to load file(s) without its dependencies.";
|
||||||
enableResolveDependencies.CheckedChanged += enableResolveDependencies_CheckedChanged;
|
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
|
||||||
//
|
//
|
||||||
skipContainer.CheckOnClick = true;
|
skipContainer.CheckOnClick = true;
|
||||||
@@ -660,13 +669,13 @@ namespace AssetStudio.GUI
|
|||||||
allToolStripMenuItem.CheckOnClick = true;
|
allToolStripMenuItem.CheckOnClick = true;
|
||||||
allToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
|
allToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||||
allToolStripMenuItem.Name = "allToolStripMenuItem";
|
allToolStripMenuItem.Name = "allToolStripMenuItem";
|
||||||
allToolStripMenuItem.Size = new System.Drawing.Size(88, 22);
|
allToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||||
allToolStripMenuItem.Text = "All";
|
allToolStripMenuItem.Text = "All";
|
||||||
allToolStripMenuItem.Click += typeToolStripMenuItem_Click;
|
allToolStripMenuItem.Click += typeToolStripMenuItem_Click;
|
||||||
//
|
//
|
||||||
// debugMenuItem
|
// 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.Name = "debugMenuItem";
|
||||||
debugMenuItem.Size = new System.Drawing.Size(54, 20);
|
debugMenuItem.Size = new System.Drawing.Size(54, 20);
|
||||||
debugMenuItem.Text = "Debug";
|
debugMenuItem.Text = "Debug";
|
||||||
@@ -715,13 +724,13 @@ namespace AssetStudio.GUI
|
|||||||
enableFileLogging.Text = "Enable file logging";
|
enableFileLogging.Text = "Enable file logging";
|
||||||
enableFileLogging.CheckedChanged += enableFileLogging_CheckedChanged;
|
enableFileLogging.CheckedChanged += enableFileLogging_CheckedChanged;
|
||||||
//
|
//
|
||||||
// enableVerbose
|
// loggedEventsMenuItem
|
||||||
//
|
//
|
||||||
enableVerbose.CheckOnClick = true;
|
loggedEventsMenuItem.Name = "loggedEventsMenuItem";
|
||||||
enableVerbose.Name = "enableVerbose";
|
loggedEventsMenuItem.Size = new System.Drawing.Size(191, 22);
|
||||||
enableVerbose.Size = new System.Drawing.Size(191, 22);
|
loggedEventsMenuItem.Text = "Logged events";
|
||||||
enableVerbose.Text = "Enable Verbose";
|
loggedEventsMenuItem.DropDown.Closing += loggedEventsMenuItem_DropDownClosing;
|
||||||
enableVerbose.CheckedChanged += enableVerbose_Click;
|
loggedEventsMenuItem.DropDownClosed += loggedEventsMenuItem_DropDownClosed;
|
||||||
//
|
//
|
||||||
// miscToolStripMenuItem
|
// miscToolStripMenuItem
|
||||||
//
|
//
|
||||||
@@ -1353,15 +1362,6 @@ namespace AssetStudio.GUI
|
|||||||
showOriginalFileToolStripMenuItem.Visible = false;
|
showOriginalFileToolStripMenuItem.Visible = false;
|
||||||
showOriginalFileToolStripMenuItem.Click += showOriginalFileToolStripMenuItem_Click;
|
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
|
// MainForm
|
||||||
//
|
//
|
||||||
AllowDrop = true;
|
AllowDrop = true;
|
||||||
@@ -1548,7 +1548,7 @@ namespace AssetStudio.GUI
|
|||||||
private System.Windows.Forms.ToolStripMenuItem specifyUnityCNKey;
|
private System.Windows.Forms.ToolStripMenuItem specifyUnityCNKey;
|
||||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator13;
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator13;
|
||||||
private System.Windows.Forms.ToolStripMenuItem enableFileLogging;
|
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 sceneHierarchy;
|
||||||
private System.Windows.Forms.ToolStripMenuItem assetMapTypeMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem assetMapTypeMenuItem;
|
||||||
private System.Windows.Forms.ToolStripMenuItem loadCABMapToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem loadCABMapToolStripMenuItem;
|
||||||
|
|||||||
@@ -98,7 +98,6 @@ namespace AssetStudio.GUI
|
|||||||
{
|
{
|
||||||
enableConsole.Checked = Properties.Settings.Default.enableConsole;
|
enableConsole.Checked = Properties.Settings.Default.enableConsole;
|
||||||
enableFileLogging.Checked = Properties.Settings.Default.enableFileLogging;
|
enableFileLogging.Checked = Properties.Settings.Default.enableFileLogging;
|
||||||
enableVerbose.Checked = Properties.Settings.Default.enableVerbose;
|
|
||||||
displayAll.Checked = Properties.Settings.Default.displayAll;
|
displayAll.Checked = Properties.Settings.Default.displayAll;
|
||||||
displayInfo.Checked = Properties.Settings.Default.displayInfo;
|
displayInfo.Checked = Properties.Settings.Default.displayInfo;
|
||||||
enablePreview.Checked = Properties.Settings.Default.enablePreview;
|
enablePreview.Checked = Properties.Settings.Default.enablePreview;
|
||||||
@@ -130,7 +129,14 @@ namespace AssetStudio.GUI
|
|||||||
Logger.Default = logger;
|
Logger.Default = logger;
|
||||||
ConsoleHelper.ShowWindow(handle, ConsoleHelper.SW_HIDE);
|
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;
|
Logger.FileLogging = enableFileLogging.Checked;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2325,12 +2331,20 @@ namespace AssetStudio.GUI
|
|||||||
Logger.FileLogging = enableFileLogging.Checked;
|
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();
|
Properties.Settings.Default.Save();
|
||||||
|
|
||||||
Logger.LogVerbose = enableVerbose.Checked;
|
Logger.Default.Flags = (LoggerEvent)Properties.Settings.Default.loggerEventType;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void abortStripMenuItem_Click(object sender, EventArgs e)
|
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">
|
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>312, 17</value>
|
<value>312, 17</value>
|
||||||
</metadata>
|
</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">
|
<data name="fontPreviewBox.Text" xml:space="preserve">
|
||||||
<value>abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWYZ
|
<value>abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWYZ
|
||||||
1234567890.:,;'\"(!?)+-*/=
|
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>
|
The quick brown fox jumps over the lazy dog. 1234567890</value>
|
||||||
</data>
|
</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">
|
<metadata name="timer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>553, 17</value>
|
<value>553, 17</value>
|
||||||
</metadata>
|
</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.Configuration.UserScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("{}")]
|
[global::System.Configuration.DefaultSettingValueAttribute("{}")]
|
||||||
@@ -481,5 +469,17 @@ namespace AssetStudio.GUI.Properties {
|
|||||||
this["allowDuplicates"] = value;
|
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">
|
<Setting Name="enableFileLogging" Type="System.Boolean" Scope="User">
|
||||||
<Value Profile="(Default)">True</Value>
|
<Value Profile="(Default)">True</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
<Setting Name="enableVerbose" Type="System.Boolean" Scope="User">
|
|
||||||
<Value Profile="(Default)">False</Value>
|
|
||||||
</Setting>
|
|
||||||
<Setting Name="texs" Type="System.String" Scope="User">
|
<Setting Name="texs" Type="System.String" Scope="User">
|
||||||
<Value Profile="(Default)">{}</Value>
|
<Value Profile="(Default)">{}</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
@@ -116,5 +113,8 @@
|
|||||||
<Setting Name="allowDuplicates" Type="System.Boolean" Scope="User">
|
<Setting Name="allowDuplicates" Type="System.Boolean" Scope="User">
|
||||||
<Value Profile="(Default)">False</Value>
|
<Value Profile="(Default)">False</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
|
<Setting Name="loggerEventType" Type="System.Int32" Scope="User">
|
||||||
|
<Value Profile="(Default)">30</Value>
|
||||||
|
</Setting>
|
||||||
</Settings>
|
</Settings>
|
||||||
</SettingsFile>
|
</SettingsFile>
|
||||||
@@ -6,30 +6,40 @@ using System.Text;
|
|||||||
|
|
||||||
namespace AssetStudio
|
namespace AssetStudio
|
||||||
{
|
{
|
||||||
|
[Flags]
|
||||||
public enum LoggerEvent
|
public enum LoggerEvent
|
||||||
{
|
{
|
||||||
Verbose,
|
None = 0,
|
||||||
Debug,
|
Verbose = 1,
|
||||||
Info,
|
Debug = 2,
|
||||||
Warning,
|
Info = 4,
|
||||||
Error,
|
Warning = 8,
|
||||||
|
Error = 16,
|
||||||
|
Default = Debug | Info | Warning | Error,
|
||||||
|
All = Verbose | Debug | Info | Warning | Error,
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface ILogger
|
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 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 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;
|
return;
|
||||||
|
|
||||||
Console.WriteLine("[{0}] {1}", loggerEvent, message);
|
Console.WriteLine("[{0}] {1}", loggerEvent, message);
|
||||||
@@ -41,9 +51,10 @@ namespace AssetStudio
|
|||||||
private const string LogFileName = "log.txt";
|
private const string LogFileName = "log.txt";
|
||||||
private const string PrevLogFileName = "log_prev.txt";
|
private const string PrevLogFileName = "log_prev.txt";
|
||||||
private readonly object LockWriter = new object();
|
private readonly object LockWriter = new object();
|
||||||
|
private StreamWriter Writer;
|
||||||
|
|
||||||
public StreamWriter Writer;
|
public bool Silent { get; set; }
|
||||||
|
public LoggerEvent Flags { get; set; }
|
||||||
public FileLogger()
|
public FileLogger()
|
||||||
{
|
{
|
||||||
var logPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, LogFileName);
|
var logPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, LogFileName);
|
||||||
@@ -57,11 +68,11 @@ namespace AssetStudio
|
|||||||
}
|
}
|
||||||
~FileLogger()
|
~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;
|
return;
|
||||||
|
|
||||||
lock (LockWriter)
|
lock (LockWriter)
|
||||||
@@ -69,5 +80,10 @@ namespace AssetStudio
|
|||||||
Writer.WriteLine($"[{DateTime.Now}][{loggerEvent}] {message}");
|
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 Default = new DummyLogger();
|
||||||
public static ILogger File;
|
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
|
public static bool FileLogging
|
||||||
{
|
{
|
||||||
@@ -36,15 +40,13 @@ namespace AssetStudio
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
((FileLogger)File)?.Writer?.Dispose();
|
((FileLogger)File)?.Dispose();
|
||||||
File = null;
|
File = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Verbose(string message)
|
public static void Verbose(string message)
|
||||||
{
|
|
||||||
if (LogVerbose)
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -57,28 +59,27 @@ namespace AssetStudio
|
|||||||
}
|
}
|
||||||
catch (Exception) { }
|
catch (Exception) { }
|
||||||
if (FileLogging) File.Log(LoggerEvent.Verbose, message);
|
if (FileLogging) File.Log(LoggerEvent.Verbose, message);
|
||||||
Default.Log(LoggerEvent.Verbose, message, Silent);
|
Default.Log(LoggerEvent.Verbose, message);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
public static void Debug(string message)
|
public static void Debug(string message)
|
||||||
{
|
{
|
||||||
if (FileLogging) File.Log(LoggerEvent.Debug, 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)
|
public static void Info(string message)
|
||||||
{
|
{
|
||||||
if (FileLogging) File.Log(LoggerEvent.Info, 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)
|
public static void Warning(string message)
|
||||||
{
|
{
|
||||||
if (FileLogging) File.Log(LoggerEvent.Warning, 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)
|
public static void Error(string message)
|
||||||
{
|
{
|
||||||
if (FileLogging) File.Log(LoggerEvent.Error, 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)
|
public static void Error(string message, Exception e)
|
||||||
@@ -89,7 +90,7 @@ namespace AssetStudio
|
|||||||
|
|
||||||
message = sb.ToString();
|
message = sb.ToString();
|
||||||
if (FileLogging) File.Log(LoggerEvent.Error, message);
|
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