diff --git a/source/dlog/core.d b/source/dlog/core.d index debb247..0bfc892 100644 --- a/source/dlog/core.d +++ b/source/dlog/core.d @@ -188,7 +188,7 @@ public class Logger /* Set the line information in the context */ defaultContext.setLineInfo(compilationInfo); - /* Set the level to error */ + /* Set the level to ERROR */ defaultContext.setLevel(Level.ERROR); /** @@ -199,7 +199,134 @@ public class Logger /* Join all `components` into a single string */ string messageOut = join(components, multiArgJoiner); + /* Call the log */ + logc(defaultContext, messageOut, c1, c2, c3, c4, c5, c6); + } + /** + * Logs using the default context an arbitrary amount of arguments + * specifically setting the context's level to INFO + * + * Params: + * segments = the arbitrary argumnets (alias sequence) + * __FILE_FULL_PATH__ = compile time usage file + * __FILE__ = compile time usage file (relative) + * __LINE__ = compile time usage line number + * __MODULE__ = compile time usage module + * __FUNCTION__ = compile time usage function + * __PRETTY_FUNCTION__ = compile time usage function (pretty) + */ + public final void info(TextType...)(TextType segments, + string c1 = __FILE_FULL_PATH__, + string c2 = __FILE__, ulong c3 = __LINE__, + string c4 = __MODULE__, string c5 = __FUNCTION__, + string c6 = __PRETTY_FUNCTION__) + { + /* Use the default context `Context` */ + Context defaultContext = new Context(); + + /* Build up the line information */ + CompilationInfo compilationInfo = CompilationInfo(c1, c2, c3, c4, c5, c6); + + /* Set the line information in the context */ + defaultContext.setLineInfo(compilationInfo); + + /* Set the level to INFO */ + defaultContext.setLevel(Level.INFO); + + /** + * Grab at compile-time all arguments and generate runtime code to add them to `components` + */ + string[] components = flatten(segments); + + /* Join all `components` into a single string */ + string messageOut = join(components, multiArgJoiner); + + /* Call the log */ + logc(defaultContext, messageOut, c1, c2, c3, c4, c5, c6); + } + + /** + * Logs using the default context an arbitrary amount of arguments + * specifically setting the context's level to WARN + * + * Params: + * segments = the arbitrary argumnets (alias sequence) + * __FILE_FULL_PATH__ = compile time usage file + * __FILE__ = compile time usage file (relative) + * __LINE__ = compile time usage line number + * __MODULE__ = compile time usage module + * __FUNCTION__ = compile time usage function + * __PRETTY_FUNCTION__ = compile time usage function (pretty) + */ + public final void warn(TextType...)(TextType segments, + string c1 = __FILE_FULL_PATH__, + string c2 = __FILE__, ulong c3 = __LINE__, + string c4 = __MODULE__, string c5 = __FUNCTION__, + string c6 = __PRETTY_FUNCTION__) + { + /* Use the default context `Context` */ + Context defaultContext = new Context(); + + /* Build up the line information */ + CompilationInfo compilationInfo = CompilationInfo(c1, c2, c3, c4, c5, c6); + + /* Set the line information in the context */ + defaultContext.setLineInfo(compilationInfo); + + /* Set the level to WARN */ + defaultContext.setLevel(Level.WARN); + + /** + * Grab at compile-time all arguments and generate runtime code to add them to `components` + */ + string[] components = flatten(segments); + + /* Join all `components` into a single string */ + string messageOut = join(components, multiArgJoiner); + + /* Call the log */ + logc(defaultContext, messageOut, c1, c2, c3, c4, c5, c6); + } + + /** + * Logs using the default context an arbitrary amount of arguments + * specifically setting the context's level to DEBUG + * + * Params: + * segments = the arbitrary argumnets (alias sequence) + * __FILE_FULL_PATH__ = compile time usage file + * __FILE__ = compile time usage file (relative) + * __LINE__ = compile time usage line number + * __MODULE__ = compile time usage module + * __FUNCTION__ = compile time usage function + * __PRETTY_FUNCTION__ = compile time usage function (pretty) + */ + public final void debug_(TextType...)(TextType segments, + string c1 = __FILE_FULL_PATH__, + string c2 = __FILE__, ulong c3 = __LINE__, + string c4 = __MODULE__, string c5 = __FUNCTION__, + string c6 = __PRETTY_FUNCTION__) + { + /* Use the default context `Context` */ + Context defaultContext = new Context(); + + /* Build up the line information */ + CompilationInfo compilationInfo = CompilationInfo(c1, c2, c3, c4, c5, c6); + + /* Set the line information in the context */ + defaultContext.setLineInfo(compilationInfo); + + /* Set the level to DEBUG */ + defaultContext.setLevel(Level.DEBUG); + + /** + * Grab at compile-time all arguments and generate runtime code to add them to `components` + */ + string[] components = flatten(segments); + + /* Join all `components` into a single string */ + string messageOut = join(components, multiArgJoiner); /* Call the log */ logc(defaultContext, messageOut, c1, c2, c3, c4, c5, c6);