https://github.com/citymonstret/loggbok
A simple and very easy to use Java logging framework
https://github.com/citymonstret/loggbok
java java-8 logging logging-framework
Last synced: 2 months ago
JSON representation
A simple and very easy to use Java logging framework
- Host: GitHub
- URL: https://github.com/citymonstret/loggbok
- Owner: Citymonstret
- License: mit
- Created: 2019-09-30T10:31:34.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-10-24T15:15:16.000Z (over 6 years ago)
- Last Synced: 2025-01-01T04:28:24.884Z (over 1 year ago)
- Topics: java, java-8, logging, logging-framework
- Language: Java
- Homepage:
- Size: 38.1 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
**W.I.P** Really simple Java logging framework.
### Maven
[JitPack](https://jitpack.io) is used as the Maven repository for LoggBok.
```xml
jitpack.io
https://jitpack.io
```
```xml
com.github.Sauilitired
LoggBok
1.0-PRE
```
### Example
```java
// Create a file to log to
final Path testFile = new File("./test.log").toPath();
if (!Files.exists(testFile)) {
try {
Files.createFile(testFile);
} catch (IOException e) {
e.printStackTrace();
}
}
// Specify a log format
final String logFormat = "[%thread%][%level%][%time%] %message%\n";
// The loggers are AutoCloseable
try (final Logger fileLogger = new ThreadedQueueLogger(
new FileLogger(testFile, logFormat, new LogLevels()));
final Logger threadedQueueLogger = new ThreadedQueueLogger(
new PrintStreamLogger(System.out, logFormat, new LogLevels()));
final Logger logger = new SplitLogger(fileLogger, threadedQueueLogger)) {
logger.info("Hello World!");
logger.error("Hello Error!");
}
```
There are also other utility wrappers, such as LevelSplitLogger, which
handles different logging levels using different loggers:
```java
final String logFormat = "[%thread%][%level%][%time%] %message%\n";
final LogLevels logLevels = new LogLevels();
try (final PrintStreamLogger stdout = new PrintStreamLogger(System.out, logFormat, logLevels);
final PrintStreamLogger stderr = new PrintStreamLogger(System.err, logFormat, logLevels);
final LevelSplitLogger levelSplitLogger = new LevelSplitLogger(stdout, logLevels).split(LogLevels.LEVEL_ERROR, stderr)) {
levelSplitLogger.info("Hello World!");
levelSplitLogger.error("Hello Error!");
}
```
LoggBok also allows you to interact with the Java logging API. This
can be done either by delegating logging to a Java logger, or by wrapping
a LoggBok logger in a Java logger, and thus using the Java logging API to log
to LoggBok.
```java
final String logFormat = "[%thread%][%level%][%time%] %message%\n";
final LogLevels logLevels = new LogLevels();
try (final PrintStreamLogger stdout = new PrintStreamLogger(System.out, logFormat, logLevels);
final PrintStreamLogger stderr = new PrintStreamLogger(System.err, logFormat, logLevels);
final LevelSplitLogger levelSplitLogger = new LevelSplitLogger(stdout, logLevels).split(LogLevels.LEVEL_ERROR, stderr);
final JavaDelegateLogger javaDelegateLogger = new JavaDelegateLogger(Logger.getLogger("Main"), logFormat, logLevels)) {
// Using the java logging API
final Logger javaLogger = JavaLogger.wrap(levelSplitLogger);
javaLogger.log(Level.INFO, "Hello World!");
javaLogger.log(Level.SEVERE, "Hello Error!");
// Delegating to the Java logging API
javaDelegateLogger.log(LogLevels.LEVEL_INFO, "Hello %s!", "world");
}
```
These loggers are currently implemented:
* ConsumerLogger: Log to a Consumer\
* FileLogger: Log to a file
* JavaDelegateLogger: Log to a Java Logger
* JavaLogger: Log from a Java Logger
* LevelSplitLogger: Split log delegation depending on the log level
* PrintStreamLogger: Log to a print stream
* SplitLogger: Delegate to several different loggers at the same time
* ThreadedQueueLogger: Asynchronous log delegation
* VoidLogger: A logger that screams into the void
* ColorLogger: Delegate colourful logs
* ColorStripper: Delegate logger that strips colours