diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Application/AzQtApplication.cpp b/Code/Framework/AzQtComponents/AzQtComponents/Application/AzQtApplication.cpp index b8bfc7a5d5..73c7fe7aba 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Application/AzQtApplication.cpp +++ b/Code/Framework/AzQtComponents/AzQtComponents/Application/AzQtApplication.cpp @@ -20,7 +20,6 @@ namespace AzQtComponents AzQtApplication::AzQtApplication(int& argc, char** argv) : QApplication(argc, argv) - , m_traceLogger(new AzQtTraceLogger) { // Use a common Qt settings path for applications that don't register their own application name if (QApplication::applicationName().isEmpty()) diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Application/AzQtApplication.h b/Code/Framework/AzQtComponents/AzQtComponents/Application/AzQtApplication.h index 0a7bfc8d27..37d33468b5 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Application/AzQtApplication.h +++ b/Code/Framework/AzQtComponents/AzQtComponents/Application/AzQtApplication.h @@ -14,7 +14,6 @@ #include -#include #include namespace AzQtComponents @@ -27,9 +26,6 @@ namespace AzQtComponents void static setDpiScaling(); protected: - AZ_PUSH_DISABLE_DLL_EXPORT_MEMBER_WARNING - AZStd::unique_ptr m_traceLogger; - AZ_POP_DISABLE_DLL_EXPORT_MEMBER_WARNING }; } // namespace AzQtComponents diff --git a/Code/Framework/AzQtComponents/AzQtComponents/azqtcomponents_files.cmake b/Code/Framework/AzQtComponents/AzQtComponents/azqtcomponents_files.cmake index c9a025d472..bcfbb84778 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/azqtcomponents_files.cmake +++ b/Code/Framework/AzQtComponents/AzQtComponents/azqtcomponents_files.cmake @@ -9,8 +9,6 @@ set(FILES AzQtComponentsAPI.h Application/AzQtApplication.cpp Application/AzQtApplication.h - Application/AzQtTraceLogger.cpp - Application/AzQtTraceLogger.h Buses/DragAndDrop.h Buses/ShortcutDispatch.h DragAndDrop/MainWindowDragAndDrop.h diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Application/AzQtTraceLogger.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/Logger/AzQtTraceLogger.cpp similarity index 62% rename from Code/Framework/AzQtComponents/AzQtComponents/Application/AzQtTraceLogger.cpp rename to Code/Framework/AzToolsFramework/AzToolsFramework/Logger/AzQtTraceLogger.cpp index 6084d555e7..d9f9a444ee 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Application/AzQtTraceLogger.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Logger/AzQtTraceLogger.cpp @@ -10,59 +10,25 @@ * */ -#include +#include #include #include -#include -namespace AzQtComponents + +namespace AzToolsFramework { - class AzQtTraceLogger::Impl : public AZ::Debug::TraceMessageBus::Handler - { - public: - void WriteStartupLog(char name[]); - - Impl() - { - AZ::Debug::TraceMessageBus::Handler::BusConnect(); - } - ~Impl() - { - AZ::Debug::TraceMessageBus::Handler::BusDisconnect(); - } - - protected: - ////////////////////////////////////////////////////////////////////////// - // AZ::Debug::TraceMessageBus::Handler overrides... - bool OnOutput(const char* window, const char* message) override; - ////////////////////////////////////////////////////////////////////////// - - struct LogMessage - { - public: - AZStd::string window; - AZStd::string message; - }; - AZStd::vector m_startupLogSink; - AZStd::unique_ptr m_logFile; - }; - AzQtTraceLogger::AzQtTraceLogger() - : m_impl(new Impl) { + AZ::Debug::TraceMessageBus::Handler::BusConnect(); } AzQtTraceLogger::~AzQtTraceLogger() { + AZ::Debug::TraceMessageBus::Handler::BusDisconnect(); } - void AzQtTraceLogger::WriteStartupLog(char name[]) - { - m_impl->WriteStartupLog(name); - } - - bool AzQtTraceLogger::Impl::OnOutput(const char* window, const char* message) + bool AzQtTraceLogger::OnOutput(const char* window, const char* message) { if (m_logFile) { @@ -75,15 +41,13 @@ namespace AzQtComponents return false; } - void AzQtTraceLogger::Impl::WriteStartupLog(char name[]) - { - std::string temp = name; - - //using namespace AzFramework; - ///* + void AzQtTraceLogger::WriteStartupLog(char name[]) + { + using namespace AzFramework; + AZ::IO::FileIOBase* fileIO = AZ::IO::FileIOBase::GetInstance(); AZ_Assert(fileIO != nullptr, "FileIO should be running at this point"); - /* + // There is no log system online so we have to create your own log file. char resolveBuffer[AZ_MAX_PATH_LEN] = { 0 }; fileIO->ResolvePath("@user@", resolveBuffer, AZ_MAX_PATH_LEN); @@ -111,6 +75,5 @@ namespace AzQtComponents m_startupLogSink = {}; m_logFile->FlushLog(); } - */ } -} // namespace AzQtComponents +} // namespace AzToolsFramework diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Application/AzQtTraceLogger.h b/Code/Framework/AzToolsFramework/AzToolsFramework/Logger/AzQtTraceLogger.h similarity index 50% rename from Code/Framework/AzQtComponents/AzQtComponents/Application/AzQtTraceLogger.h rename to Code/Framework/AzToolsFramework/AzToolsFramework/Logger/AzQtTraceLogger.h index 2207cfce4f..50655dfcda 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Application/AzQtTraceLogger.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Logger/AzQtTraceLogger.h @@ -13,11 +13,11 @@ #pragma once #include -#include +#include -namespace AzQtComponents +namespace AzToolsFramework { - class AZ_QT_COMPONENTS_API AzQtTraceLogger + class AzQtTraceLogger : public AZ::Debug::TraceMessageBus::Handler { public: AzQtTraceLogger(); @@ -25,9 +25,18 @@ namespace AzQtComponents void WriteStartupLog(char name[]); protected: - class Impl; - AZ_PUSH_DISABLE_DLL_EXPORT_MEMBER_WARNING - AZStd::unique_ptr m_impl; - AZ_POP_DISABLE_DLL_EXPORT_MEMBER_WARNING + ////////////////////////////////////////////////////////////////////////// + // AZ::Debug::TraceMessageBus::Handler overrides... + bool OnOutput(const char* window, const char* message) override; + ////////////////////////////////////////////////////////////////////////// + + struct LogMessage + { + public: + AZStd::string window; + AZStd::string message; + }; + AZStd::vector m_startupLogSink; + AZStd::unique_ptr m_logFile; }; -} // namespace AzQtComponents +} // namespace AzToolsFramework diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/aztoolsframework_files.cmake b/Code/Framework/AzToolsFramework/AzToolsFramework/aztoolsframework_files.cmake index 7fbde67ce4..5718de48ab 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/aztoolsframework_files.cmake +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/aztoolsframework_files.cmake @@ -147,6 +147,8 @@ set(FILES Entity/SliceEditorEntityOwnershipServiceBus.h Fingerprinting/TypeFingerprinter.h Fingerprinting/TypeFingerprinter.cpp + Logger/AzQtTraceLogger.cpp + Logger/AzQtTraceLogger.h Manipulators/AngularManipulator.cpp Manipulators/AngularManipulator.h Manipulators/BaseManipulator.cpp diff --git a/Gems/Atom/Tools/MaterialEditor/Code/Source/MaterialEditorApplication.cpp b/Gems/Atom/Tools/MaterialEditor/Code/Source/MaterialEditorApplication.cpp index 75875d07de..25e23ad1e5 100644 --- a/Gems/Atom/Tools/MaterialEditor/Code/Source/MaterialEditorApplication.cpp +++ b/Gems/Atom/Tools/MaterialEditor/Code/Source/MaterialEditorApplication.cpp @@ -352,43 +352,7 @@ namespace MaterialEditor ExitMainLoop(); } } - /* - void MaterialEditorApplication::WriteStartupLog() - { - using namespace AzFramework; - AZ::IO::FileIOBase* fileIO = AZ::IO::FileIOBase::GetInstance(); - AZ_Assert(fileIO != nullptr, "FileIO should be running at this point"); - - // There is no log system online so we have to create your own log file. - char resolveBuffer[AZ_MAX_PATH_LEN] = { 0 }; - fileIO->ResolvePath("@user@", resolveBuffer, AZ_MAX_PATH_LEN); - - // Note: @log@ hasn't been set at this point - AZStd::string logDirectory; - StringFunc::Path::Join(resolveBuffer, "log", logDirectory); - fileIO->SetAlias("@log@", logDirectory.c_str()); - - fileIO->CreatePath("@root@"); - fileIO->CreatePath("@user@"); - fileIO->CreatePath("@log@"); - - AZStd::string logPath; - StringFunc::Path::Join(logDirectory.c_str(), "MaterialEditor.log", logPath); - - m_logFile.reset(aznew LogFile(logPath.c_str())); - if (m_logFile) - { - m_logFile->SetMachineReadable(false); - for (const LogMessage& message : m_startupLogSink) - { - m_logFile->AppendLog(LogFile::SEV_NORMAL, message.window.c_str(), message.message.c_str()); - } - m_startupLogSink = {}; - m_logFile->FlushLog(); - } - } - */ void MaterialEditorApplication::LoadSettings() { AZ::SerializeContext* context = nullptr; @@ -476,8 +440,7 @@ namespace MaterialEditor return; } - m_traceLogger->WriteStartupLog("MaterialEditor.log"); - //WriteStartupLog(); + m_traceLogger.WriteStartupLog("MaterialEditor.log"); if (!LaunchDiscoveryService()) { diff --git a/Gems/Atom/Tools/MaterialEditor/Code/Source/MaterialEditorApplication.h b/Gems/Atom/Tools/MaterialEditor/Code/Source/MaterialEditorApplication.h index 8b49f017c0..ff0809897d 100644 --- a/Gems/Atom/Tools/MaterialEditor/Code/Source/MaterialEditorApplication.h +++ b/Gems/Atom/Tools/MaterialEditor/Code/Source/MaterialEditorApplication.h @@ -20,9 +20,8 @@ #include #include #include - +#include #include -#include #include @@ -106,7 +105,6 @@ namespace MaterialEditor void CompileCriticalAssets(); void ProcessCommandLine(const AZ::CommandLine& commandLine); - //void WriteStartupLog(); void LoadSettings(); void UnloadSettings(); @@ -126,6 +124,8 @@ namespace MaterialEditor AZStd::vector m_startupLogSink; AZStd::unique_ptr m_logFile; + AzToolsFramework::AzQtTraceLogger m_traceLogger; + //! Local user settings are used to store material browser tree expansion state AZ::UserSettingsProvider m_localUserSettings; diff --git a/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/ShaderManagementConsoleApplication.cpp b/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/ShaderManagementConsoleApplication.cpp index e59bbde17d..5f330053b0 100644 --- a/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/ShaderManagementConsoleApplication.cpp +++ b/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/ShaderManagementConsoleApplication.cpp @@ -39,8 +39,6 @@ #include #include -#include - AZ_PUSH_DISABLE_WARNING(4251 4800, "-Wunknown-warning-option") // disable warnings spawned by QT #include #include @@ -345,6 +343,8 @@ namespace ShaderManagementConsole return; } + m_traceLogger.WriteStartupLog("ShaderManagementConsole.log"); + //[GFX TODO][ATOM-415] Try to factor out some of this stuff with AtomSampleViewerApplication AzToolsFramework::AssetDatabase::AssetDatabaseRequestsBus::Handler::BusConnect(); AzToolsFramework::AssetBrowser::AssetDatabaseLocationNotificationBus::Broadcast(&AzToolsFramework::AssetBrowser::AssetDatabaseLocationNotifications::OnDatabaseInitialized); diff --git a/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/ShaderManagementConsoleApplication.h b/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/ShaderManagementConsoleApplication.h index 2139db45a2..9b7de38f0a 100644 --- a/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/ShaderManagementConsoleApplication.h +++ b/Gems/Atom/Tools/ShaderManagementConsole/Code/Source/ShaderManagementConsoleApplication.h @@ -18,11 +18,13 @@ #include #include +#include #include #include #include + #include namespace ShaderManagementConsole @@ -113,6 +115,8 @@ namespace ShaderManagementConsole static void PyIdleWaitFrames(uint32_t frames); + AzToolsFramework::AzQtTraceLogger m_traceLogger; + //! Local user settings are used to store asset browser tree expansion state AZ::UserSettingsProvider m_localUserSettings;