2021-12-23 13:14:51 +00:00
|
|
|
/**
|
|
|
|
* Includes defaults such as the DefaultLogger
|
|
|
|
*/
|
2021-12-23 13:16:31 +00:00
|
|
|
module dlog.defaults;
|
2021-12-23 13:14:51 +00:00
|
|
|
|
2021-12-23 10:14:36 +00:00
|
|
|
import dlog.core : Logger;
|
2023-02-27 17:07:09 +00:00
|
|
|
import dlog.transform : MessageTransform;
|
2021-12-23 10:14:36 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* DefaultLogger
|
|
|
|
*
|
|
|
|
* The default logger logs to standard output (fd 0)
|
|
|
|
*/
|
|
|
|
public final class DefaultLogger : Logger
|
|
|
|
{
|
2023-01-07 19:10:15 +00:00
|
|
|
this(string multiArgJoiner = " ")
|
2021-12-23 10:14:36 +00:00
|
|
|
{
|
|
|
|
/* Use the DefaultTransform */
|
2023-01-07 19:10:15 +00:00
|
|
|
super(multiArgJoiner);
|
2021-12-23 10:14:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
protected override void logImpl(string message)
|
|
|
|
{
|
|
|
|
import std.stdio : write;
|
|
|
|
write(message);
|
|
|
|
}
|
|
|
|
}
|
2023-02-27 17:07:09 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* DefaultTransform
|
|
|
|
*
|
|
|
|
* Provides a transformation of the kind
|
|
|
|
*
|
|
|
|
* [date+time] (srcFile:lineNumber): message `\n`
|
|
|
|
*/
|
|
|
|
public final class DefaultTransform : MessageTransform
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* Performs the default transformation
|
|
|
|
*
|
|
|
|
* Params:
|
|
|
|
* text = text input to transform
|
|
|
|
* context = the context (if any)
|
|
|
|
* Returns: the transformed text
|
|
|
|
*/
|
|
|
|
public override string transform(string text, string[] context)
|
|
|
|
{
|
|
|
|
string message;
|
|
|
|
|
|
|
|
/* Date and time */
|
|
|
|
import std.datetime.systime : Clock, SysTime;
|
|
|
|
SysTime currTime = Clock.currTime();
|
|
|
|
import std.conv : to;
|
|
|
|
string timestamp = to!(string)(currTime);
|
|
|
|
message = "["~timestamp~"]";
|
|
|
|
|
|
|
|
/* Module information */
|
|
|
|
message = message ~ "\t(";
|
|
|
|
message = message ~ context[1]~":"~context[2];
|
|
|
|
message = message ~ "): "~text;
|
|
|
|
|
|
|
|
/* Add trailing newline */
|
|
|
|
message = message ~ '\n';
|
|
|
|
|
|
|
|
return message;
|
|
|
|
}
|
|
|
|
}
|