Content is user-generated and unverified.

Unreal Engine アプリ終了時の標準出力ログ出力

概要

Unreal Engineでアプリケーション終了時に標準出力(stdout)へメッセージを出力するには、FCoreDelegates::OnExitデリゲートを使用します。

実装方法

1. ヘッダーファイル(MyExitLogger.h)

cpp
#pragma once
#include "CoreMinimal.h"

class FMyExitLogger
{
public:
    static void Register();
    static void OnExit();
};

2. 実装ファイル(MyExitLogger.cpp)

cpp
#include "MyExitLogger.h"

void FMyExitLogger::Register()
{
    // 終了時コールバックを登録
    FCoreDelegates::OnExit.AddStatic(&FMyExitLogger::OnExit);
}

void FMyExitLogger::OnExit()
{
    // 標準出力にメッセージを出す
    printf("アプリケーションが終了しました\n");
    fflush(stdout);
    
    // UE のログシステムも使える
    UE_LOG(LogTemp, Log, TEXT("アプリケーションが終了しました"));
}

3. 初期化(MyGameInstance.cpp など)

cpp
#include "MyExitLogger.h"

void UMyGameInstance::Init()
{
    Super::Init();
    FMyExitLogger::Register();
}

重要なポイント

  • FCoreDelegates::OnExit が最も簡単な終了検知方法
  • printf を使えばOSの標準出力に直接出力
  • fflush(stdout) でバッファを強制的にフラッシュ
  • UE_LOG を併用すれば Visual Studio の出力ウィンドウにも表示
  • クロスプラットフォーム対応:Linux/Mac/Windows すべてで動作

用途に応じた選択肢

出力先使用する関数特徴
コンソールprintfOS標準出力、パイプ可能
UEログUE_LOGVisual Studio出力ウィンドウ、ログファイル
両方上記併用最も確実

注意事項

  • モジュールの StartupModule()GameInstance::Init() など、適切な初期化タイミングで Register() を呼び出す
  • 終了処理は一度だけ実行されるため、重複登録に注意
Content is user-generated and unverified.
    Unreal Engine アプリ終了時の標準出力ログ出力 | Claude