英語版
このページの英語版を見る

std.logger.core

@safe bool isLoggingEnabled()(LogLevel ll, LogLevel loggerLL, LogLevel globalLL, lazy bool condition = true);
この関数は実行時に使用され、LogLevel が有効であるかどうかを判断する。 同じように、以前に定義されたバージョン文を使用して、特定のレベルを無効にすることができる。 バージョン文はコンパイル単位に関連付けられているため、 他のコンパイル単位のログを無効にすることはできない。 pure bool isLoggingEnabled()(LogLevel ll) @safe nothrow @nogc
void log(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(const LogLevel ll, lazy bool condition, lazy A args)
if (args.length != 1);

void log(T, string moduleName = __MODULE__)(const LogLevel ll, lazy bool condition, lazy T arg, int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__);
この関数はデータをログに記録する。
データを処理するには、ログ呼び出しのLogLevelLogLevelsharedLogdefaultLogLevel の 以上でなければならず、 さらに渡された条件がtrue でなければならない。
Parameters:
LogLevel ll このログ呼び出しで使用されたLogLevel
bool condition データをログに記録するには、条件はtrue でなければならない。
A args ログに記録されるべきデータ。

log(LogLevel.warning, true, "Hello World", 3.1415);

void log(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(const LogLevel ll, lazy A args)
if (args.length > 1 && !is(Unqual!(A[0]) : bool));

void log(T, string moduleName = __MODULE__)(const LogLevel ll, lazy T arg, int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__);
この関数はデータをログに記録する。
データを処理するには、ログ呼び出しのLogLevelLogLevelsharedLog 以上でなければならない。
Parameters:
LogLevel ll このログコールで使用されるLogLevel
A args ログに記録すべきデータ。

log(LogLevel.warning, "Hello World", 3.1415);
この関数はデータをログに記録する。

void log(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy bool condition, lazy A args)
if (args.length != 1);

void log(T, string moduleName = __MODULE__)(lazy bool condition, lazy T arg, int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__);
この関数はデータをログに記録する。
データを処理するには、LogLevelsharedLogdefaultLogLevel以上である必要がある。 また、渡された条件はtrue でなければならない。
Parameters:
bool condition データをログに記録するには、条件はtrue でなければならない。
A args ログに記録すべきデータ。

log(true, "Hello World", 3.1415);

void log(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy A args)
if (args.length > 1 && !is(Unqual!(A[0]) : bool) && !is(Unqual!(A[0]) == LogLevel) || args.length == 0);
この関数はデータをログに記録する。
データを処理するには、LogLevelsharedLogdefaultLogLevel 以上である必要がある。
Parameters:
A args 記録されるべきデータ。

log("Hello World", 3.1415);

void logf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(const LogLevel ll, lazy bool condition, lazy string msg, lazy A args);
この関数は、printf 形式でデータをログに記録する。
trueデータを処理するには、ログ呼び出しのLogLevelLogLevel 以上でなければならず、sharedLogdefaultLogLevel の条件も満たさなければならない。
Parameters:
LogLevel ll このログコールで使用されたLogLevel
bool condition データをログに記録するには、条件はtrue でなければならない。
string msg printf 形式の文字列。
A args ログに記録されるべきデータ。

logf(LogLevel.warning, true, "Hello World %f", 3.1415);

void logf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(const LogLevel ll, lazy string msg, lazy A args);
この関数は、printf 形式でデータをログに記録する。
データを処理するには、ログコールのLogLevelLogLevelsharedLog およびdefaultLogLevel と 同等かそれ以上でなければならない。
Parameters:
LogLevel ll このログコールで使用されたLogLevel
string msg printf 形式の文字列。
A args ログに記録されるべきデータ。

logf(LogLevel.warning, "Hello World %f", 3.1415);

void logf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy bool condition, lazy string msg, lazy A args);
この関数は、printf 形式でデータをログに記録する。
データを処理するには、ログコールのLogLeveldefaultLogLevel 以上である必要があり、さらに、条件がtrue である必要がある。
Parameters:
bool condition データをログに記録するには、条件はtrue でなければならない。
string msg printf 形式の文字列。
A args ログに記録すべきデータ。

logf(true, "Hello World %f", 3.1415);

void logf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy string msg, lazy A args);
この関数は、printf 形式でデータをログに記録する。
データを処理するには、ログコールのLogLeveldefaultLogLevel 以上である必要がある。
Parameters:
string msg printf 形式の文字列。
A args ログに記録されるデータ。

:

logf("Hello World %f", 3.1415);

template defaultLogFunction(LogLevel ll)
このテンプレートは、グローバルログ関数にLogLevelを提供する。 関数名にエンコードされている。
このテンプレートに続くエイリアスは、これらのログ関数のパブリック名を作成する。
alias trace = defaultLogFunction!LogLevel.trace.defaultLogFunction(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy A args) if (args.length > 0 && !is(Unqual!(A[0]) : bool) || args.length == 0);

alias info = defaultLogFunction!LogLevel.info.defaultLogFunction(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy A args) if (args.length > 0 && !is(Unqual!(A[0]) : bool) || args.length == 0);

alias warning = defaultLogFunction!LogLevel.warning.defaultLogFunction(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy A args) if (args.length > 0 && !is(Unqual!(A[0]) : bool) || args.length == 0);

alias error = defaultLogFunction!LogLevel.error.defaultLogFunction(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy A args) if (args.length > 0 && !is(Unqual!(A[0]) : bool) || args.length == 0);

alias critical = defaultLogFunction!LogLevel.critical.defaultLogFunction(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy A args) if (args.length > 0 && !is(Unqual!(A[0]) : bool) || args.length == 0);

alias fatal = defaultLogFunction!LogLevel.fatal.defaultLogFunction(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy A args) if (args.length > 0 && !is(Unqual!(A[0]) : bool) || args.length == 0);
この関数は、条件に応じて任意で、データをstdThreadLocalLog に記録する。
結果として得られるログメッセージを記録するには、LogLevelLogLevel およびstdThreadLocalLogLogLevel よりも大きく、 グローバルな よりも大きい必要がある。 さらに、LogLevelLogLevelよりも大きく、stdSharedLogger の よりも大きい必要がある。 条件が指定されている場合は、true と評価される必要がある。
Parameters:
bool condition データをログに記録するには、条件がtrue でなければならない。
A args ログに記録されるべきデータ。

trace(1337, "is number");
info(1337, "is number");
error(1337, "is number");
critical(1337, "is number");
fatal(1337, "is number");
trace(true, 1337, "is number");
info(false, 1337, "is number");
error(true, 1337, "is number");
critical(false, 1337, "is number");
fatal(true, 1337, "is number");

template defaultLogFunctionf(LogLevel ll)
このテンプレートは、グローバルなprintf スタイルのログ関数にLogLevel を関数名にエンコードして提供する。
このテンプレートに続くエイリアスは、ログ関数のパブリック名を作成する。
alias tracef = defaultLogFunctionf!LogLevel.trace.defaultLogFunctionf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy string msg, lazy A args);

alias infof = defaultLogFunctionf!LogLevel.info.defaultLogFunctionf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy string msg, lazy A args);

alias warningf = defaultLogFunctionf!LogLevel.warning.defaultLogFunctionf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy string msg, lazy A args);

alias errorf = defaultLogFunctionf!LogLevel.error.defaultLogFunctionf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy string msg, lazy A args);

alias criticalf = defaultLogFunctionf!LogLevel.critical.defaultLogFunctionf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy string msg, lazy A args);

alias fatalf = defaultLogFunctionf!LogLevel.fatal.defaultLogFunctionf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy string msg, lazy A args);
この関数は、printf 形式でsharedLog にデータをログに記録する。
生成されたログメッセージを記録するには、LogLevelLogLevel およびsharedLog の 以上であり、 グローバルなLogLevel 以上でなければなりません。 さらに、LogLevelLogLevel以上でなければならず、stdSharedLogger の 以上でなければなりません。
Parameters:
string msg printf 形式の文字列。
A args ログに記録されるべきデータ。

tracef("is number %d", 1);
infof("is number %d", 2);
errorf("is number %d", 3);
criticalf("is number %d", 4);
fatalf("is number %d", 5);
この関数の第2のバージョンは、sharedLogprintf 形式でデータを記録する。
生成されたログメッセージを記録するには、LogLevelLogLevelsharedLog 以上でなければならず、 グローバルなLogLevel 以上でなければならない。 さらに、LogLevelLogLevelstdSharedLogger 以上でなければならない。 "function"関数

Parameters:
bool condition データをログに記録するには、この条件はtrue でなければならない。
string msg printf 形式の文字列。
A args ログに記録すべきデータ。

tracef(false, "is number %d", 1);
infof(false, "is number %d", 2);
errorf(true, "is number %d", 3);
criticalf(true, "is number %d", 4);
fatalf(someFunct(), "is number %d", 5);

enum LogLevel: ubyte;
使用可能なログレベルは8つある。これらのレベルは、すべて 、トレース、 情報警告エラー重大致命的オフである。 ログ関数が呼び出されると、 LogLevel.fatalがコールされると、そのロガーのシャットダウンハンドラがコールされます。
all
プログラムの実行をトレースするための、最低限割り当て可能なLogLevel
trace
LogLevel プログラムの実行をトレースする。
info
このレベルは、プログラムに関する情報を表示するために使用される。
warning
プログラムに関する警告は、このレベルで表示されるべきである。
error
エラーに関する情報は、このレベルでログに記録すべきである。
critical
致命的なエラーを通知するメッセージは、 このレベルでログに記録すべきである。
fatal
致命的なエラーを説明するログメッセージは、このレベルを使用すべきである 。
off
可能な限り最高のLogLevel
abstract class Logger;
このクラスはすべてのロガーのベースとなる。新しい種類のロガーを作成するには、派生クラスでwriteLogMsg メソッドを実装する必要がある。 デフォルトでは、これはスレッドセーフではない。
また、override メソッドにbeginLogMsglogMsgPartfinishLogMsg の3つのメソッドをまとめて指定することも可能である。このオプションは、より 柔軟性がある。
struct LogEntry;
LogEntryは、ログメッセージに関連するすべての情報を組み合わせた集約である。 この集約は、 writeLogMsgメソッドに渡される。
string file;
ログ関数が呼び出されたファイル名
int line;
ログ関数が呼び出された行番号
string funcName;
ログ関数が呼び出された関数の名前
string prettyFuncName;
ログ関数が呼び出された関数のきれいに整形された名前
string moduleName;
ログメッセージが送信されたモジュール名
LogLevel logLevel;
ログメッセージに関連付けられたLogLevel
Tid threadId;
ログメッセージのスレッドID
SysTime timestamp;
メッセージが記録された時間
string msg;
ログメッセージの内容
Logger logger;
このコンストラクタを作成するために使用されたLogger への参照LogEntry
this(this This)(LogLevel lv);
Logger のすべてのサブクラスは、自身のコンストラクタからこのコンストラクタを呼び出す必要がある。 これは、LogLevel を設定し、致命的なハンドラを作成する。致命的なハンドラは、 レベルLogLevel.fatal でログコールが実行された場合、Error をスローする。
Parameters:
LogLevel lv LogLevel この インスタンスで使用する。Logger
protected abstract @safe void writeLogMsg(ref LogEntry payload);
カスタムロガーがMultiLogger およびArrayLogger で動作するには、このメソッドを実装する必要がある。
Parameters:
LogEntry payload ログ関数への呼び出しに関連するすべての情報。
See Also: beginLogMsg、logMsgPart、finishLogMsg
beginLogMsg、logMsgPart、finishLogMsg
protected @safe void logMsgPart(scope const(char)[] msg);
ログメッセージの一部を記録する。
protected @safe void finishLogMsg();
メッセージが書き込まれたことを通知し、それ以降の logMsgPart へのコールは行われない。
final const pure @nogc @property @safe LogLevel logLevel();

final @nogc @property @safe void logLevel(const LogLevel lv);
LogLevel は、ログコールが処理されるか、Logger によってドロップされるかを決定する。 ログコールが処理されるためには、 ログコールのLogLevelLogLevellogger と同等かそれ以上でなければならない。
これらの2つのメソッドは、使用されるLoggerLogLevel を設定および取得する。

auto f = new FileLogger(stdout);
f.logLevel = LogLevel.info;
assert(f.logLevel == LogLevel.info);

final @nogc @property @safe void delegate() fatalHandler();

final @nogc @property @safe void fatalHandler(void delegate() @safe fh);
このdelegate は、LogLevel.fatal を含むログメッセージが記録される場合に呼び出される。
デフォルトでは、Error がスローされる。
@trusted void forwardMsg(ref LogEntry payload);
このメソッドは、あるロガーから別のロガーへのログエントリーの転送を可能にする。
forwardMsg適切な同期を確保し、writeLogMsg をコールする。これは独自のロガーを実装するための API であり、 通常のユーザーコードからコールすべきではない。他の ロギング関数との顕著な違いは、globalLogLevel が再度評価されないことである。 これは、呼び出し側がすでに確認済みであると想定されているためである。
template memLogFunctions(LogLevel ll)

alias trace = .Logger.memLogFunctions!LogLevel.trace.logImpl(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy A args) if (args.length == 0 || args.length > 0 && !is(A[0] : bool));

alias tracef = .Logger.memLogFunctions!LogLevel.trace.logImplf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy bool condition, lazy string msg, lazy A args);

alias info = .Logger.memLogFunctions!LogLevel.info.logImpl(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy A args) if (args.length == 0 || args.length > 0 && !is(A[0] : bool));

alias infof = .Logger.memLogFunctions!LogLevel.info.logImplf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy bool condition, lazy string msg, lazy A args);

alias warning = .Logger.memLogFunctions!LogLevel.warning.logImpl(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy A args) if (args.length == 0 || args.length > 0 && !is(A[0] : bool));

alias warningf = .Logger.memLogFunctions!LogLevel.warning.logImplf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy bool condition, lazy string msg, lazy A args);

alias error = .Logger.memLogFunctions!LogLevel.error.logImpl(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy A args) if (args.length == 0 || args.length > 0 && !is(A[0] : bool));

alias errorf = .Logger.memLogFunctions!LogLevel.error.logImplf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy bool condition, lazy string msg, lazy A args);

alias critical = .Logger.memLogFunctions!LogLevel.critical.logImpl(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy A args) if (args.length == 0 || args.length > 0 && !is(A[0] : bool));

alias criticalf = .Logger.memLogFunctions!LogLevel.critical.logImplf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy bool condition, lazy string msg, lazy A args);

alias fatal = .Logger.memLogFunctions!LogLevel.fatal.logImpl(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy A args) if (args.length == 0 || args.length > 0 && !is(A[0] : bool));

alias fatalf = .Logger.memLogFunctions!LogLevel.fatal.logImplf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy bool condition, lazy string msg, lazy A args);
このテンプレートは、Logger class に対して、関数名にLogLevel がエンコードされたログ関数を提供する。
詳細については、このテンプレート内で定義された2つの関数を参照のこと。
このテンプレートに続くエイリアスは、これらのログ関数のパブリック名を作成する。
void logImpl(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy A args)
if (args.length == 0 || args.length > 0 && !is(A[0] : bool));
この関数は、使用されたLogger にデータを記録する。
生成されたログメッセージを記録するには、LogLevel は使用するLoggerLogLevel 以上でなければならず、 グローバルなLogLevel 以上でなければならない。
Parameters:
A args ログに記録されるべきデータ。

auto s = new FileLogger(stdout);
s.trace(1337, "is number");
s.info(1337, "is number");
s.error(1337, "is number");
s.critical(1337, "is number");
s.fatal(1337, "is number");

void logImpl(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy bool condition, lazy A args);
この関数は、条件に応じて使用されるLogger にデータを記録する。
生成されたログメッセージをLogLevel に記録するには、LogLevel が使用するLogger の 以上でなければならず、 さらにグローバルなLogLevel 以上でなければならず、さらに 条件がtrue を満たしている必要がある。
Parameters:
bool condition データをログに記録するには、条件はtrue でなければならない。
A args ログに記録されるべきデータ。

auto s = new FileLogger(stdout);
s.trace(true, 1337, "is number");
s.info(false, 1337, "is number");
s.error(true, 1337, "is number");
s.critical(false, 1337, "is number");
s.fatal(true, 1337, "is number");

void logImplf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy bool condition, lazy string msg, lazy A args);
この関数は、Logger で使用されたデータをprintf 形式でログに記録する。
生成されたログメッセージを記録するには、LogLevelは、 使用するLoggerLogLevel 以上でなければならず、 グローバルなLogLevel 以上でなければならず、 さらに、渡された条件はtrue でなければならない。
Parameters:
bool condition データをログに記録するには、条件はtrue でなければならない。
string msg printf 形式の文字列。
A args ログに記録すべきデータ。

auto s = new FileLogger(stderr);
s.tracef(true, "is number %d", 1);
s.infof(true, "is number %d", 2);
s.errorf(false, "is number %d", 3);
s.criticalf(someFunc(), "is number %d", 4);
s.fatalf(true, "is number %d", 5);

void logImplf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy string msg, lazy A args);
この関数は、Logger を使用して、printf 形式でデータをログに記録する。 形式で
生成されたログメッセージを記録するには、LogLevel は 使用するLoggerLogLevel 以上でなければならず、 グローバルなLogLevel 以上でなければならない。
Parameters:
string msg printf 形式の文字列。
A args ログに記録されるデータ。

auto s = new FileLogger(stderr);
s.tracef("is number %d", 1);
s.infof("is number %d", 2);
s.errorf("is number %d", 3);
s.criticalf("is number %d", 4);
s.fatalf("is number %d", 5);

void log(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(const LogLevel ll, lazy bool condition, lazy A args)
if (args.length != 1);

void log(T, string moduleName = __MODULE__)(const LogLevel ll, lazy bool condition, lazy T args, int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__);
このメソッドは、使用するLoggerLogLevel でデータをログに記録する。
このメソッドは、bool を最初の引数として受け取る。 データを処理するには、booltrue で、Logger のLogLevelが グローバルなLogLevel 以上である必要がある。
Parameters:
A args ログに記録されるべきデータ。
bool condition データをログに記録するには、条件をtrue に設定する必要がある。
A args 記録されるデータ。
Returns: ロギング機能で使用されるロガーを参考までに記載する。
ログ取得関数で使用されるロガーを参考までに記載する。

auto l = new StdioLogger();
l.log(1337);

void log(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(const LogLevel ll, lazy A args)
if (args.length > 1 && !is(Unqual!(A[0]) : bool) || args.length == 0);

void log(T)(const LogLevel ll, lazy T args, int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__);
この関数は、使用中のLogger に特定のLogLevel でデータをログに記録する。
生成されたログメッセージをLogLevelに記録するには、 LogLevel が使用するLoggerの 以上である必要があり 、グローバルなLogLevel 以上である必要がある。
Parameters:
LogLevel ll ログメッセージの記録に使用される特定のLogLevel
A args ログに記録されるべきデータ。

auto s = new FileLogger(stdout);
s.log(LogLevel.trace, 1337, "is number");
s.log(LogLevel.info, 1337, "is number");
s.log(LogLevel.warning, 1337, "is number");
s.log(LogLevel.error, 1337, "is number");
s.log(LogLevel.fatal, 1337, "is number");

void log(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy bool condition, lazy A args)
if (args.length != 1);

void log(T)(lazy bool condition, lazy T args, int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__);
Loggerこの関数は、使用するLogger に、 使用するLogLevel で明示的に渡された条件に応じて データをログに記録する。
生成されたログメッセージが記録されるためには、使用されたLogLevelLogger は、グローバルなLogLevel 以上でなければならず、条件はtrue でなければならない。
Parameters:
bool condition データをログに記録するには、条件はtrue でなければならない。
A args ログに記録されるべきデータ。

auto s = new FileLogger(stdout);
s.log(true, 1337, "is number");
s.log(true, 1337, "is number");
s.log(true, 1337, "is number");
s.log(false, 1337, "is number");
s.log(false, 1337, "is number");

void log(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy A args)
if (args.length > 1 && !is(Unqual!(A[0]) : bool) && !is(immutable(A[0]) == immutable(LogLevel)) || args.length == 0);

void log(T)(lazy T arg, int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__);
この関数は、使用されたLogger に、使用されたLogLevelLogger をログに記録する。
生成されたログメッセージが記録されるためには、使用されたLoggerLogLevelは、 グローバルなLogLevel 以上でなければならない。
Parameters:
A args ログに記録されるべきデータ。

auto s = new FileLogger(stdout);
s.log(1337, "is number");
s.log(info, 1337, "is number");
s.log(1337, "is number");
s.log(1337, "is number");
s.log(1337, "is number");

void logf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(const LogLevel ll, lazy bool condition, lazy string msg, lazy A args);
この関数は、特定のLogger に、printf の条件に従って、LogLevel 形式でデータをログに記録する。
生成されたログメッセージを記録するには、LogLevelは、 使用するLoggerLogLevel 以上でなければならず、 グローバルなLogLevel 以上でなければならず、 条件はtrue でなければならない。
Parameters:
LogLevel ll ログメッセージの記録に使用される特定のLogLevel
bool condition データをログに記録するには、条件はtrue でなければならない。
string msg このログ呼び出しに使用されるフォーマット文字列。
A args ログに記録されるべきデータ。

auto s = new FileLogger(stdout);
s.logf(LogLevel.trace, true ,"%d %s", 1337, "is number");
s.logf(LogLevel.info, true ,"%d %s", 1337, "is number");
s.logf(LogLevel.warning, true ,"%d %s", 1337, "is number");
s.logf(LogLevel.error, false ,"%d %s", 1337, "is number");
s.logf(LogLevel.fatal, true ,"%d %s", 1337, "is number");

void logf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(const LogLevel ll, lazy string msg, lazy A args);
この関数は、Logger で使用されているデータを、特定の LogLevelprintf 形式でログに記録する。
生成されたログメッセージを記録するには、LogLevelは、 使用するLoggerLogLevel 以上でなければならず、 グローバルなLogLevel 以上でなければならない。
Parameters:
LogLevel ll ログメッセージの記録に使用される特定のLogLevel
string msg このログ呼び出しに使用されるフォーマット文字列。
A args ログに記録されるデータ。

:

auto s = new FileLogger(stdout);
s.logf(LogLevel.trace, "%d %s", 1337, "is number");
s.logf(LogLevel.info, "%d %s", 1337, "is number");
s.logf(LogLevel.warning, "%d %s", 1337, "is number");
s.logf(LogLevel.error, "%d %s", 1337, "is number");
s.logf(LogLevel.fatal, "%d %s", 1337, "is number");

void logf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy bool condition, lazy string msg, lazy A args);
この関数は、使用するLogger に、 使用するLoggerLogLevel で指定した条件に従って、printf 形式でデータをログに記録する。
生成されたログメッセージを記録するには、使用されたLoggerLogLevelが グローバルなLogLevel 以上でなければならず、条件はtrue でなければならない。
Parameters:
bool condition データをログに記録するには、条件はtrue でなければならない。
string msg このログ呼び出しに使用されるフォーマット文字列。
A args ログに記録されるべきデータ。

auto s = new FileLogger(stdout);
s.logf(true ,"%d %s", 1337, "is number");
s.logf(true ,"%d %s", 1337, "is number");
s.logf(true ,"%d %s", 1337, "is number");
s.logf(false ,"%d %s", 1337, "is number");
s.logf(true ,"%d %s", 1337, "is number");

void logf(int line = __LINE__, string file = __FILE__, string funcName = __FUNCTION__, string prettyFuncName = __PRETTY_FUNCTION__, string moduleName = __MODULE__, A...)(lazy string msg, lazy A args);
このメソッドは、Logger で使用されるLogLevelLoggerprintf 形式でログに記録する。
データを処理するには、LogLevelLogger がグローバルLogLevel 以上である必要がある。
Parameters:
string msg このログ呼び出しに使用されるフォーマット文字列。
A args ログに記録されるべきデータ。

auto s = new FileLogger(stdout);
s.logf("%d %s", 1337, "is number");
s.logf("%d %s", 1337, "is number");
s.logf("%d %s", 1337, "is number");
s.logf("%d %s", 1337, "is number");
s.logf("%d %s", 1337, "is number");

@property @safe shared(Logger) sharedLog();

@property @safe void sharedLog(shared(Logger) logger);
このプロパティは、デフォルトのLogger を設定および取得する。ユーザーが別のロガーを設定しない限り、 デフォルトのロガーのログレベルはLogLevel.infoである。

sharedLog = new FileLogger(yourFile);
この例では、新しいFileLogger を新しいものとして設定する sharedLog
もし、後で元のデフォルトのロガーを再び使用したい場合は、sharedLog = null; を使用する。これにより、元の設定に戻すことができる。

注釈 取得と設定は sharedLogスレッドセーフですが、 返された参照は現在のスナップショットにすぎず、 次のコードでは、読み込みと書き込みの間に他のスレッドが再割り当てしないように する必要があります sharedLog

sharedLog使用するLogger がスレッドセーフである場合のみ、スレッドセーフとなります。 デフォルトのLogger はスレッドセーフです。
if (sharedLog !is myLogger)
    sharedLog = new myLogger;

@nogc @property @safe LogLevel globalLogLevel();

@property @safe void globalLogLevel(LogLevel ll);
これらのメソッドはグローバルLogLevel を取得および設定する。
グローバルLogLevelより小さいLogLevel のすべてのログメッセージは、writeLogMessage メソッドに到達する前に破棄される。Logger
class StdForwardLogger: std.logger.core.Logger;
StdForwardLogger共有ログに常に転送されます。
StdForwardLoggerLogLevel.fatal でデータがログに記録されている場合は、"スロー"しない。
emailemail
Examples:
auto nl1 = new StdForwardLogger(LogLevel.all);
xml-ph-0000@deepl.internal のデフォルトコンストラクタ。
@safe this(const LogLevel lv = LogLevel.all);
StdForwardLogger のデフォルトコンストラクタ。
Parameters: xml-ph-0001@deepl.internal のための xml-ph-0000@deepl.internal 。 デフォルトでは、xml-ph-0002@deepl.internal は xml-ph
LogLevel lv MultiLogger のためのLogLevel 。 デフォルトでは、 LogLevelall である。
@property @safe Logger stdThreadLocalLog();

@property @safe void stdThreadLocalLog(Logger logger);
この関数は、スレッド固有のLogger を返す。デフォルトでは、sharedLog にログ記録されたすべてのデータを に伝搬する。
これらのプロパティを使用して、このLogger を設定したり取得したりすることができる。 このLogger に対するすべての変更は、変更が行われたスレッドでのみ表示される。
このLogger は、独立したログ関数から呼び出される。これにより、 スレッドローカルなリダイレクトを作成し、独立したログ関数を使用することが 可能になる。
Examples:
同上
import std.logger.filelogger : FileLogger;
import std.file : deleteme, remove;
Logger l = stdThreadLocalLog;
stdThreadLocalLog = new FileLogger(deleteme ~ "-someFile.log");
scope(exit) remove(deleteme ~ "-someFile.log");

auto tempLog = stdThreadLocalLog;
stdThreadLocalLog = l;
destroy(tempLog);
dittoditto