{"id":16375818,"url":"https://github.com/citymonstret/loggbok","last_synced_at":"2026-04-01T00:30:21.717Z","repository":{"id":81338128,"uuid":"211835501","full_name":"Citymonstret/LoggBok","owner":"Citymonstret","description":"A simple and very easy to use Java logging framework","archived":false,"fork":false,"pushed_at":"2019-10-24T15:15:16.000Z","size":39,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-01-01T04:28:24.884Z","etag":null,"topics":["java","java-8","logging","logging-framework"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Citymonstret.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-30T10:31:34.000Z","updated_at":"2024-12-26T01:46:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"b170db78-cbb8-4125-bee9-1bb5c9566353","html_url":"https://github.com/Citymonstret/LoggBok","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Citymonstret%2FLoggBok","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Citymonstret%2FLoggBok/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Citymonstret%2FLoggBok/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Citymonstret%2FLoggBok/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Citymonstret","download_url":"https://codeload.github.com/Citymonstret/LoggBok/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239958275,"owners_count":19724924,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","java-8","logging","logging-framework"],"created_at":"2024-10-11T03:22:18.287Z","updated_at":"2026-04-01T00:30:21.684Z","avatar_url":"https://github.com/Citymonstret.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"**W.I.P** Really simple Java logging framework.\n\n### Maven\n[JitPack](https://jitpack.io) is used as the Maven repository for LoggBok.\n\n```xml\n\u003crepositories\u003e\n    \u003crepository\u003e\n        \u003cid\u003ejitpack.io\u003c/id\u003e\n        \u003curl\u003ehttps://jitpack.io\u003c/url\u003e\n    \u003c/repository\u003e\n\u003c/repositories\u003e\n```\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.Sauilitired\u003c/groupId\u003e\n    \u003cartifactId\u003eLoggBok\u003c/artifactId\u003e\n    \u003cversion\u003e1.0-PRE\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n### Example\n\n```java\n// Create a file to log to\nfinal Path testFile = new File(\"./test.log\").toPath();\nif (!Files.exists(testFile)) {\n    try {\n        Files.createFile(testFile);\n    } catch (IOException e) {\n        e.printStackTrace();\n    }\n}\n// Specify a log format\nfinal String logFormat = \"[%thread%][%level%][%time%] %message%\\n\";\n// The loggers are AutoCloseable\ntry (final Logger fileLogger = new ThreadedQueueLogger(\n    new FileLogger(testFile, logFormat, new LogLevels()));\n    final Logger threadedQueueLogger = new ThreadedQueueLogger(\n        new PrintStreamLogger(System.out, logFormat, new LogLevels()));\n    final Logger logger = new SplitLogger(fileLogger, threadedQueueLogger)) {\n    logger.info(\"Hello World!\");\n    logger.error(\"Hello Error!\");\n}\n```\n\nThere are also other utility wrappers, such as LevelSplitLogger, which\nhandles different logging levels using different loggers:\n\n```java\nfinal String logFormat = \"[%thread%][%level%][%time%] %message%\\n\";\nfinal LogLevels logLevels = new LogLevels();\ntry (final PrintStreamLogger stdout = new PrintStreamLogger(System.out, logFormat, logLevels);\n     final PrintStreamLogger stderr = new PrintStreamLogger(System.err, logFormat, logLevels);\n     final LevelSplitLogger levelSplitLogger = new LevelSplitLogger(stdout, logLevels).split(LogLevels.LEVEL_ERROR, stderr)) {\n    levelSplitLogger.info(\"Hello World!\");\n    levelSplitLogger.error(\"Hello Error!\");\n}\n```\n\nLoggBok also allows you to interact with the Java logging API. This\ncan be done either by delegating logging to a Java logger, or by wrapping\na LoggBok logger in a Java logger, and thus using the Java logging API to log\nto LoggBok. \n\n```java\nfinal String logFormat = \"[%thread%][%level%][%time%] %message%\\n\";\nfinal LogLevels logLevels = new LogLevels();\ntry (final PrintStreamLogger stdout = new PrintStreamLogger(System.out, logFormat, logLevels);\n    final PrintStreamLogger stderr = new PrintStreamLogger(System.err, logFormat, logLevels);\n    final LevelSplitLogger levelSplitLogger = new LevelSplitLogger(stdout, logLevels).split(LogLevels.LEVEL_ERROR, stderr);\n    final JavaDelegateLogger javaDelegateLogger = new JavaDelegateLogger(Logger.getLogger(\"Main\"), logFormat, logLevels)) {\n    // Using the java logging API\n    final Logger javaLogger = JavaLogger.wrap(levelSplitLogger);\n    javaLogger.log(Level.INFO, \"Hello World!\");\n    javaLogger.log(Level.SEVERE, \"Hello Error!\");\n    // Delegating to the Java logging API\n    javaDelegateLogger.log(LogLevels.LEVEL_INFO, \"Hello %s!\", \"world\");\n}\n```\n\nThese loggers are currently implemented:\n* ConsumerLogger: Log to a Consumer\\\u003cLogEntry\\\u003e\n* FileLogger: Log to a file\n* JavaDelegateLogger: Log to a Java Logger\n* JavaLogger: Log from a Java Logger\n* LevelSplitLogger: Split log delegation depending on the log level\n* PrintStreamLogger: Log to a print stream\n* SplitLogger: Delegate to several different loggers at the same time\n* ThreadedQueueLogger: Asynchronous log delegation\n* VoidLogger: A logger that screams into the void\n* ColorLogger: Delegate colourful logs\n* ColorStripper: Delegate logger that strips colours\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcitymonstret%2Floggbok","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcitymonstret%2Floggbok","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcitymonstret%2Floggbok/lists"}