graphite.utils.log

このモジュールは、ロガーおよびログ出力を行いやすくするための機能を提供します。

Members

Enums

Level
enum Level

ログの重要度を表します

Functions

backend
auto backend(File file)

ファイルを最終出力先とするようなバックエンドを構築します。 ファイルへの出力フォーマットや形式は、formattedWriter(file.lockingTextWriter, log)により決定されます。

backend
auto backend(Writer w)
auto backend(Writer* w)

出力レンジを最終出力先とするようなバックエンドを構築します。 出力レンジの型および出力フォーマットや形式は、formattedWriter(outputRange, log)により決定されます。

logger
auto logger(B backend)

バックエンドを指定してロガーを構築します。 どのようなT...に対してもisOuputRange!(R, LogElement!T)trueとなるような出力レンジがバックエンドとなります。

logger
auto logger(Writer w)

出力レンジ、もしくはstd.stdio.Fileを最終的な出力先としてロガーを構築します。 出力のフォーマットや形式は、formattedWriterによって決定されます。 ロガーに渡されたログは、formattedWriter(w, log)によってWriter wに出力されます。

Structs

LogElement
struct LogElement(T...)

ログのフロントエンドとバックエンドでやりとりされるデータです。

LogFormat
struct LogFormat
Undocumented in source.
Logger
struct Logger(Backend)

ロガー

Templates

FileLogger
template FileLogger(alias formattedWriter)

std.stdio.Fileに書き込むLogger

Examples

module foo;

import std.stdio;
import graphite.utils.logger;
import carbon.templates;

mixin defGlobalVariables!("logger", "logFile",
{
    auto file = File("foo.txt", "w");
    return tuple(.logger!(LogFormat.readable)(file), file);
});


void main()
{
    int a = 12;
    // 文字列として出力
    logger.writeln!"notice"("a is ", a);

    // 値をそのまま出力
    logger.trace!"notice"(a, a * 2, a * 3);

    // 例外の通知
    try logger.captureException(enforce(0));
    catch(Exception ex){
        writeln(ex);
        throw ex;
    }
}

Meta