Deafult log service issue

Hi all,

A bit of a weird one here. I’m trying to use liquibase with a java app that builds a module for the Ignition framework provided by Inductive Automation.

Everything worked fine on Liquibase 3.x.x but when I move the same code to 4.27.0 I get an exception of:

Caused by: liquibase.exception.UnexpectedLiquibaseException: Cannot find default log service
at liquibase.Scope.getCurrentScope(Scope.java:106)

I’ve tried using the fix from mattbertolini, I’ve tried the jul-to-slf4j package but nothing seems to be working.

To try to simplify things I also built a standard java project and all it does is fire up liquibase and use a changelog to write to a local database. This worked perfectly first time with no complaints about default log service. So this seems to be something missing in the Ignition build but I just can’t find a way around it. Does anybody have a suggestion?

Hi @darrensteele.

Hope you are doing very well? I’ll check tomorrow your issue with the team but in the meantime I was wondering whether you can try something like this on your Liquibase starting up block:

       BufferedLogService logService = new BufferedLogService()
        Map<String, Object> scopeValues = new HashMap<>()
        scopeValues.put(Scope.Attr.logService.name(), logService)
        Scope.child(scopeValues, new Scope.ScopedRunner() {
            <Your Liquibase start up code>
        })

This way your log service would be available in the given scope.

Thanks,
Daniel.

Hi Mallod,

Thanks for taking the time to do this. The code you put above is essentially what I did to get it working but I used an overridden AbstractLogService. Unfortunately this just took me to the next issue and I came to realise that there have been some pretty severe breaking changes that have gone into the 4.x.x release.

With the 3.x.x it just worked. Seriously…10 minutes and three lines of code and I was up and running. However 3.x.x is very old now. I then had about two weeks of banging my head against the wall trying to persuade 4.x.x to do…well…anything really. The documentation for the 4.x.x API is utterly lacking and I ended up having to piece things together using forum posts. Utterly disappointed. Needless to say we have now employed a different method to accomplish our goals.

Thanks for your help though