summaryrefslogtreecommitdiff
path: root/std/log/mod_test.ts
diff options
context:
space:
mode:
authorPaul Thompson <paul.thompson773@gmail.com>2020-07-06 13:57:31 +1000
committerGitHub <noreply@github.com>2020-07-05 23:57:31 -0400
commitc3c13351a9f26f2209b51b8ded5e8f2a1ad86e94 (patch)
tree9e7439974e4383ae0f0b1868a1be53ef497fcf6d /std/log/mod_test.ts
parentd1289db1c34b983126ce2e8e4758091e926b4630 (diff)
std/log - Expose Logger type and improve public interface for get & set log levels (#6617)
Diffstat (limited to 'std/log/mod_test.ts')
-rw-r--r--std/log/mod_test.ts133
1 files changed, 132 insertions, 1 deletions
diff --git a/std/log/mod_test.ts b/std/log/mod_test.ts
index 9de5d76af..30c6b0914 100644
--- a/std/log/mod_test.ts
+++ b/std/log/mod_test.ts
@@ -8,8 +8,10 @@ import {
error,
critical,
setup,
+ Logger,
+ LogLevels,
+ LevelName,
} from "./mod.ts";
-import { Logger } from "./logger.ts";
import { BaseHandler } from "./handlers.ts";
class TestHandler extends BaseHandler {
@@ -89,3 +91,132 @@ Deno.test({
assertEquals(anotherConsoleHandler.messages[0], "[tasks] ERROR world");
},
});
+
+Deno.test({
+ name: "Loggers have level and levelName to get/set loglevels",
+ async fn() {
+ const testHandler = new TestHandler("DEBUG");
+ await setup({
+ handlers: {
+ test: testHandler,
+ },
+
+ loggers: {
+ // configure default logger available via short-hand methods above
+ default: {
+ level: "DEBUG",
+ handlers: ["test"],
+ },
+ },
+ });
+ const logger: Logger = getLogger();
+ assertEquals(logger.levelName, "DEBUG");
+ assertEquals(logger.level, LogLevels.DEBUG);
+
+ logger.debug("debug");
+ logger.error("error");
+ logger.critical("critical");
+ assertEquals(testHandler.messages.length, 3);
+ assertEquals(testHandler.messages[0], "DEBUG debug");
+ assertEquals(testHandler.messages[1], "ERROR error");
+ assertEquals(testHandler.messages[2], "CRITICAL critical");
+
+ testHandler.messages = [];
+ logger.level = LogLevels.WARNING;
+ assertEquals(logger.levelName, "WARNING");
+ assertEquals(logger.level, LogLevels.WARNING);
+
+ logger.debug("debug2");
+ logger.error("error2");
+ logger.critical("critical2");
+ assertEquals(testHandler.messages.length, 2);
+ assertEquals(testHandler.messages[0], "ERROR error2");
+ assertEquals(testHandler.messages[1], "CRITICAL critical2");
+
+ testHandler.messages = [];
+ const setLevelName: LevelName = "CRITICAL";
+ logger.levelName = setLevelName;
+ assertEquals(logger.levelName, "CRITICAL");
+ assertEquals(logger.level, LogLevels.CRITICAL);
+
+ logger.debug("debug3");
+ logger.error("error3");
+ logger.critical("critical3");
+ assertEquals(testHandler.messages.length, 1);
+ assertEquals(testHandler.messages[0], "CRITICAL critical3");
+ },
+});
+
+Deno.test({
+ name: "Loggers have loggerName to get logger name",
+ async fn() {
+ const testHandler = new TestHandler("DEBUG");
+ await setup({
+ handlers: {
+ test: testHandler,
+ },
+
+ loggers: {
+ namedA: {
+ level: "DEBUG",
+ handlers: ["test"],
+ },
+ namedB: {
+ level: "DEBUG",
+ handlers: ["test"],
+ },
+ },
+ });
+
+ assertEquals(getLogger("namedA").loggerName, "namedA");
+ assertEquals(getLogger("namedB").loggerName, "namedB");
+ assertEquals(getLogger().loggerName, "default");
+ assertEquals(getLogger("nonsetupname").loggerName, "nonsetupname");
+ },
+});
+
+Deno.test({
+ name: "Logger has mutable handlers",
+ async fn() {
+ const testHandlerA = new TestHandler("DEBUG");
+ const testHandlerB = new TestHandler("DEBUG");
+ await setup({
+ handlers: {
+ testA: testHandlerA,
+ testB: testHandlerB,
+ },
+
+ loggers: {
+ default: {
+ level: "DEBUG",
+ handlers: ["testA"],
+ },
+ },
+ });
+ const logger: Logger = getLogger();
+ logger.info("msg1");
+ assertEquals(testHandlerA.messages.length, 1);
+ assertEquals(testHandlerA.messages[0], "INFO msg1");
+ assertEquals(testHandlerB.messages.length, 0);
+
+ logger.handlers = [testHandlerA, testHandlerB];
+
+ logger.info("msg2");
+ assertEquals(testHandlerA.messages.length, 2);
+ assertEquals(testHandlerA.messages[1], "INFO msg2");
+ assertEquals(testHandlerB.messages.length, 1);
+ assertEquals(testHandlerB.messages[0], "INFO msg2");
+
+ logger.handlers = [testHandlerB];
+
+ logger.info("msg3");
+ assertEquals(testHandlerA.messages.length, 2);
+ assertEquals(testHandlerB.messages.length, 2);
+ assertEquals(testHandlerB.messages[1], "INFO msg3");
+
+ logger.handlers = [];
+ logger.info("msg4");
+ assertEquals(testHandlerA.messages.length, 2);
+ assertEquals(testHandlerB.messages.length, 2);
+ },
+});