- [Core] Add option to toggle logger events [GUI/CLI]

This commit is contained in:
Razmoth
2024-01-22 20:22:55 +04:00
parent 0cdad5ef1a
commit 59478d9c05
11 changed files with 125 additions and 91 deletions

View File

@@ -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>

View File

@@ -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)

View File

@@ -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;

View File

@@ -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)

View File

@@ -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>

View File

@@ -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;
}
}
}
}

View File

@@ -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>