Play Siv3D!

ゲームとメディアアートのための C++ ライブラリ「Siv3D」

ログファイル

ログファイル

Siv3D June 2015 v2

ログにメッセージを出力する
LOG(...)はログファイルに一連のメッセージを出力します。
デバッグ実行時には Visual Studio の出力ウィンドウにも出力されます。

# include <Siv3D.hpp>

void Main()
{
	LOG(100); // 100

	LOG(L"abcde", 100 + 23); // abcde123

	LOG(Window::Size()); // (640,480)

	WaitKey();
}


ログにエラーメッセージを出力する
LOG_ERROR(...)はログファイルに一連のエラーメッセージを赤色の背景色で出力します。
デバッグ実行時には Visual Studio の出力ウィンドウにも出力されます。

# include <Siv3D.hpp>

void Main()
{
	LOG_ERROR(100); // 100

	LOG_ERROR(L"abcde", 100 + 23); // abcde123

	LOG_ERROR(Window::Size()); // (640,480)

	WaitKey();
}


Debug ビルドのみログにメッセージを出力する
LOG_DEBUG(...)はログファイルに一連のデバッグメッセージを出力します。
デバッグ実行時には Visual Studio の出力ウィンドウにも出力されます。
リリースビルド時にはコードが除去されて引数は評価されないため、副作用を持たないようにしましょう。

# include <Siv3D.hpp>

void Main()
{
	LOG_DEBUG(100); // 100

	LOG_DEBUG(L"abcde", 100 + 23); // abcde123

	LOG_DEBUG(Window::Size()); // (640,480)

	int i = 100;

	LOG_DEBUG(++i); // 注意: リリースビルドでは評価されない

	Println(i); // デバッグビルドでは 101, リリースビルドでは 100

	WaitKey();
}


初めて呼ばれたときだけログにメッセージを出力する
LOG_ONCE(...)はログファイルに一連のデバッグメッセージを出力します。
デバッグ実行時には Visual Studio の出力ウィンドウにも出力されます。
他のログ出力関数と異なり、ソースコードの同じ個所で 2 回目以降に呼び出された場合は何も出力しません。

# include <Siv3D.hpp>

void Main()
{
	for (int i = 0; i < 3; ++i)
	{
		LOG_ONCE(L"aaa", i);
	}

	for (int i = 0; i < 3; ++i)
	{
		LOG(L"bbb", i);
	}

	WaitKey();
}
aaa0
bbb0
bbb1
bbb2


ログ出力の詳細度を変更する
Logger::SetOutputLevel(level)はログ出力(エンジン内部で出力されるものも含む)の詳細度を設定します。
OutputLevel::Lessはエラーや警告など重要なログのみ、OutputLevel::Normalはユーザによる出力や通常のエンジンからの出力を含み、OutputLevel::Moreはデバッグ出力を含みます(デバッグビルド時のみ)。
デフォルトではリリースビルド時は OutputLevel::Normal、デバッグビルド時は OutputLevel::More です。

# include <Siv3D.hpp>

void Main()
{
	Logger::SetOutputLevel(OutputLevel::Less);

	LOG_ERROR(L"Less: ERROR");

	LOG(L"Less: LOG");

	LOG_DEBUG(L"Less: DEBUG");

	Logger::SetOutputLevel(OutputLevel::Normal);

	LOG_ERROR(L"Normal: ERROR");

	LOG(L"Normal: LOG");

	LOG_DEBUG(L"Normal: DEBUG");

	Logger::SetOutputLevel(OutputLevel::More);

	LOG_ERROR(L"More: ERROR");

	LOG(L"More: LOG");

	LOG_DEBUG(L"More: DEBUG");

	WaitKey();
}

デバッグビルド時

Less: ERROR
Normal: ERROR
Normal: LOG
More: ERROR
More: LOG
More: DEBUG

リリースビルド時

Less: ERROR
Normal: ERROR
Normal: LOG
More: ERROR
More: LOG


ログに画像を出力する
Logger::Write(image,str=L"")はログファイルに画像とメッセージを出力します。
デバッグ実行時には Visual Studio の出力ウィンドウにもメッセージが出力されます。
画像は 256x256 のサイズに収まるよう縮小・JPEG 圧縮され HTML 内に埋め込まれます。

# include <Siv3D.hpp>

void Main()
{
	const Image image(L"Example/Windmill.png");

	Logger::Write(image);

	Logger::Write(image.clip(0, 0, 200, 200), L"一部だけ");

	WaitKey();
}


ログに出力する画像の最大サイズを変更する
Logger::SetMaxImageSize(maxSize)はログに出力する画像の 1 辺の最大ピクセル数を設定します。デフォルトは 256 です。このサイズを上回る画像は縮小されて出力されます。

# include <Siv3D.hpp>

void Main()
{
	const Image image(L"Example/Windmill.png");

	Logger::Write(image, L"デフォルト");

	Logger::SetMaxImageSize(640);

	Logger::Write(image, L"640");

	Logger::SetMaxImageSize(100);

	Logger::Write(image, L"100");

	WaitKey();
}


ログに出力する画像の圧縮品質を変更する
Logger::SetImageQuality(quality)はログに出力する画像の圧縮品質を [0, 100] の範囲で指定します。
数字が大きければ圧縮品質は高くなり、データサイズも増加します。[0, 99] の場合 JPEG, 100 の場合 PNG 圧縮されます。デフォルトは 75 です。

# include <Siv3D.hpp>

void Main()
{
	Logger::SetMaxImageSize(512);

	const Image image(L"Example/Windmill.png");

	Logger::Write(image, L"デフォルト");

	Logger::SetImageQuality(100);

	Logger::Write(image, L"100");

	Logger::SetImageQuality(30);

	Logger::Write(image, L"30");

	WaitKey();
}