logzio-logback-appender icon indicating copy to clipboard operation
logzio-logback-appender copied to clipboard

Grails: Failed to start apppender named [LOGZIO]

Open zatziky opened this issue 7 years ago • 4 comments

In Grails, tested on 2 different machines with Windows 10 (OSX is working), with the configuration in logback.groovy:

appender('LOGZIO', LogzioLogbackAppender) {
    token = '...'
    logzioUrl = 'https://listener.logz.io:8071'
    logzioType = "..."
}

We keep receiving:

2017-11-12 15:46:54,487 ERROR org.springframework.boot.SpringApplication - Application startup failed java.lang.IllegalStateException: Logback configuration error detected: ERROR in ch.qos.logback.classic.gaffer.ConfigurationDelegate@20999517 - Failed to start apppender named [LOGZIO] java.lang.IllegalArgumentException: invalid array directory : C:\Users\TRUFAL~1\AppData\Local\Temp\logzio-logback-buffer\communicator-http:\localhost:8080\logzio-logback-appender
at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:161) at org.springframework.boot.logging.logback.LogbackLoggingSystem.reinitialize(LogbackLoggingSystem.java:207) at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:65) at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:50) at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:114) at org.springframework.boot.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:299) at org.springframework.boot.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:272) at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:235) at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:208) at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:167) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:122) at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:72) at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54) at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:338) at org.springframework.boot.SpringApplication.run(SpringApplication.java:309) at grails.boot.GrailsApp.run(GrailsApp.groovy:83) at grails.boot.GrailsApp.run(GrailsApp.groovy:388) at grails.boot.GrailsApp.run(GrailsApp.groovy:375) at grails.boot.GrailsApp$run.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133) at io.amio.communicator.Application.main(Application.groovy:8) Exception in thread "main" java.lang.IllegalStateException: Logback configuration error detected: ERROR in ch.qos.logback.classic.gaffer.ConfigurationDelegate@20999517 - Failed to start apppender named [LOGZIO] java.lang.IllegalArgumentException: invalid array directory : C:\Users\TRUFAL~1\AppData\Local\Temp\logzio-logback-buffer\communicator-http:\localhost:8080\logzio-logback-appender
at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:161) at org.springframework.boot.logging.logback.LogbackLoggingSystem.reinitialize(LogbackLoggingSystem.java:207) at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:65) at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:50) at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:114) at org.springframework.boot.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:299) at org.springframework.boot.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:272) at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:235) at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:208) at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:167) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:122) at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:72) at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54) at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:338) at org.springframework.boot.SpringApplication.run(SpringApplication.java:309) at grails.boot.GrailsApp.run(GrailsApp.groovy:83) at grails.boot.GrailsApp.run(GrailsApp.groovy:388) at grails.boot.GrailsApp.run(GrailsApp.groovy:375) at grails.boot.GrailsApp$run.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133) at io.amio.communicator.Application.main(Application.groovy:8)

zatziky avatar Nov 12 '17 15:11 zatziky

Hey @zatziky! What is the type you are using? (in the appender configuration)

roiravhon avatar Nov 12 '17 15:11 roiravhon

Hey @roiravhon,

the type is communicator-${SERVER_URL}. I tried now to use just communicator and the app has started. I believe a nicer exception would be helpful and it should behave the same on *nix and Windows OSs.

Thank you for the solution!

zatziky avatar Nov 12 '17 15:11 zatziky

I think its due to file names which can be differently supported on the OSs, and we add the type to the file name in order to create different buffer per type.

Indeed it would be a good feature to change the exception, although might be a bit difficult to test as we use travis-ci for this and it is Linux based.

Lets leave this open as a feature request

roiravhon avatar Nov 12 '17 15:11 roiravhon

Maybe you could find out an exception for Linux similar representing a similar state for other OSs. Then you could test it. Good luck anyways!

zatziky avatar Nov 12 '17 15:11 zatziky