Skip to the content.

Bobbin 3.0.0 - Improvements Review

2020-02-20


Greetings, Dear Friends!

Last year has been very productive for our non-commercial organization i-t.io - and this article is just the beginning of a series highlighting our activities. And we have a lot to tell, just imagine that several our projects became the center of large banking projects - and boy they failed not!

But let’s start with something simple and more understandable - yet close to every one of us without exceptions - the theme of logging.

Foreword

A year back we have presented the Bobbin - a revolutionary SLF4J logger. Past that time we:

So what is our own critical opinion about our project in a retrospective? The answer is the following: Bobbin v2.0.0 was amazing, almost ideal. It 100% fulfilled expectations on very intensive projects, making configuration and working with logs a pleasure instead of a torture.

And, most importantly, Bobbin has never failed, which allows me with even greater confidence to recommend it for ubiquitous adaptation.

This has been an great inspiration for us to make it one step closer to the ideal. And YOU have made it possible - with your invaluable feedback - thank you very much!

Therefore, please allow me to introduce - the Bobbin 3.0.0!

https://github.com/INFINITE-TECHNOLOGY/BOBBIN

Download

Maven:

<dependency>
  <groupId>io.i-t</groupId>
  <artifactId>bobbin</artifactId>
  <version>3.0.0</version>
</dependency>

Gradle:

dependencies {
    compile "org.codehaus.groovy:groovy-all:2.5.4"
    compile "io.i-t:bobbin:3.0.0"
}

Improvements

So which improvements have been included into this release?

YAML configuration

YAML configuration has replaced JSON. Initially Bobbin has been configured using a file in JSON format. However JSON has no support for block formatting, which required to escape the scripting expressions

Not so pretty, right? Our users also agreed with this and even suggested a solution - YAML. However with a seeming evidence, it took quite a long time to do the appropriate research and check the possible alternatives (for example, DSL configuration).

Ultimately we still ended on YAML - but only after researching Snake YAML parser, having understood its philosophy and found bugs and limitations.

The result was cheerful! YAML supports block formatting and a clean syntax, natively fitting the Bobbin configuration:

destinations:
  - name: io.infinite.bobbin.config.ConsoleDestinationConfig
    levels: [warn, error, info]
  - name: io.infinite.bobbin.config.FileDestinationConfig
    packages: [io.infinite]
    fileName: ("./LOGS/INFINITE/${className}/${level}/${className}_${level}_${date}.log")
  - name: io.infinite.bobbin.config.FileDestinationConfig
    fileName: ("./LOGS/PACKAGES/${className}/${level}/${className}_${level}_${date}.log")
    format: dateTime + '|' + level + '|' + threadName + '|' + className + '|' + message + '\n'

Isn’t it the best existing logger configuration format? Compare with the mess in Logback, Log4j2.

JSON configuration is no longer supported in Bobbin 3.0.0. Documentation and Wiki have been actualized accordingly.

Other configuration improvements

Technical improvements

Conclusion

At the present moment, all our infrastructure has been transited to Bobbin 3.0.0.

We anticipate the gradual transition of external projects as well - this is being helped by our confidence that Bobbin will bring pleasure to its users - and especially with the latest release, which became even more convenient.

Meanwhile we have colossal plans for 2020:

HTTP Client, chat-bots, meta-programming, transpilers, mainframes, largest financial projects, SECaaS… Soon.

Stay tuned!

Start using Bobbin now - it is Open Source and completely free!