
I have this in my logback.xml: <configuration> <contextName>${VASSAL.id:-0}</contextName> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <if condition='property("os.name").toLowerCase().startsWith("windows")'> <then> <file>${user.home}/VASSAL/errorLog</file> </then> <else> <file>${user.home}/.VASSAL/errorLog</file> </else> </if> <encoder> <pattern>%date [%contextName-%thread] %-5level %logger - %msg%n</pattern> </encoder> <prudent>true</prudent> </appender> <root level="ALL"> <appender-ref ref="FILE" /> </root> </configuration> It works properly with logback 0.9.27 and earlier. With every version after 0.9.27, I get the following output to stderr and no logfile is written: 22:07:09,571 |-INFO in ch.qos.logback.classic.LoggerContext[0] - Could NOT find resource [logback.groovy] 22:07:09,572 |-INFO in ch.qos.logback.classic.LoggerContext[0] - Could NOT find resource [logback-test.xml] 22:07:09,572 |-INFO in ch.qos.logback.classic.LoggerContext[0] - Found resource [logback.xml] at [jar:file:/home/uckelman/projects/VASSAL/VASSAL-src/lib/Vengine.jar!/logback.xml] 22:07:09,590 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@7f2ad19e - URL [jar:file:/home/uckelman/projects/VASSAL/VASSAL-src/lib/Vengine.jar!/logback.xml] is not of type file 22:07:09,784 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set 22:07:09,800 |-INFO in ch.qos.logback.classic.joran.action.ContextNameAction - Setting logger context name as [0] 22:07:09,800 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.FileAppender] 22:07:09,803 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [FILE] 22:07:09,805 |-ERROR in ch.qos.logback.core.joran.conditional.IfAction - Could not find Janino library on the class path. Skipping conditional processing. 22:07:09,824 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@16:14 - no applicable action for [encoder], current pattern is [[configuration][appender][encoder]] 22:07:09,824 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@17:16 - no applicable action for [pattern], current pattern is [[configuration][appender][encoder][pattern]] 22:07:09,825 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@19:14 - no applicable action for [prudent], current pattern is [[configuration][appender][prudent]] 22:07:09,825 |-ERROR in ch.qos.logback.core.FileAppender[FILE] - "File" property not set for appender named [FILE]. 22:07:09,825 |-WARN in ch.qos.logback.core.joran.action.AppenderAction - The object at the of the stack is not the appender named [FILE] pushed earlier. 22:07:09,825 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to ALL 22:07:09,825 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [FILE] to Logger[ROOT] 22:07:09,828 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@54281d4b - Registering current configuration as safe fallback point Specifically, I'm concerned about the the first error, which claims that Janino can't be found in the classpath, because I'm certain that janino.jar is in the classpath (and logback 0.9.27 seems to find it). What changed in 0.9.28 that's causing this? Is it something that I need to adjust in my own code, or is this a bug in logback? -- J.

Hi Joel, Which version of Janino is on your class path? On 01/11/2011 10:46 PM, Joel Uckelman wrote:
I have this in my logback.xml:
<configuration> <contextName>${VASSAL.id:-0}</contextName>
<appender name="FILE" class="ch.qos.logback.core.FileAppender"> <if condition='property("os.name").toLowerCase().startsWith("windows")'> <then> <file>${user.home}/VASSAL/errorLog</file> </then> <else> <file>${user.home}/.VASSAL/errorLog</file> </else> </if> <encoder> <pattern>%date [%contextName-%thread] %-5level %logger - %msg%n</pattern> </encoder> <prudent>true</prudent> </appender>
<root level="ALL"> <appender-ref ref="FILE" /> </root> </configuration>
It works properly with logback 0.9.27 and earlier. With every version after 0.9.27, I get the following output to stderr and no logfile is written:
22:07:09,571 |-INFO in ch.qos.logback.classic.LoggerContext[0] - Could NOT find resource [logback.groovy] 22:07:09,572 |-INFO in ch.qos.logback.classic.LoggerContext[0] - Could NOT find resource [logback-test.xml] 22:07:09,572 |-INFO in ch.qos.logback.classic.LoggerContext[0] - Found resource [logback.xml] at [jar:file:/home/uckelman/projects/VASSAL/VASSAL-src/lib/Vengine.jar!/logback.xml] 22:07:09,590 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@7f2ad19e - URL [jar:file:/home/uckelman/projects/VASSAL/VASSAL-src/lib/Vengine.jar!/logback.xml] is not of type file 22:07:09,784 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set 22:07:09,800 |-INFO in ch.qos.logback.classic.joran.action.ContextNameAction - Setting logger context name as [0] 22:07:09,800 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.FileAppender] 22:07:09,803 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [FILE] 22:07:09,805 |-ERROR in ch.qos.logback.core.joran.conditional.IfAction - Could not find Janino library on the class path. Skipping conditional processing. 22:07:09,824 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@16:14 - no applicable action for [encoder], current pattern is [[configuration][appender][encoder]] 22:07:09,824 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@17:16 - no applicable action for [pattern], current pattern is [[configuration][appender][encoder][pattern]] 22:07:09,825 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@19:14 - no applicable action for [prudent], current pattern is [[configuration][appender][prudent]] 22:07:09,825 |-ERROR in ch.qos.logback.core.FileAppender[FILE] - "File" property not set for appender named [FILE]. 22:07:09,825 |-WARN in ch.qos.logback.core.joran.action.AppenderAction - The object at the of the stack is not the appender named [FILE] pushed earlier. 22:07:09,825 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to ALL 22:07:09,825 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [FILE] to Logger[ROOT] 22:07:09,828 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@54281d4b - Registering current configuration as safe fallback point
Specifically, I'm concerned about the the first error, which claims that Janino can't be found in the classpath, because I'm certain that janino.jar is in the classpath (and logback 0.9.27 seems to find it).
What changed in 0.9.28 that's causing this? Is it something that I need to adjust in my own code, or is this a bug in logback?
-- Ceki http://twitter.com/#!/ceki

On 01/11/2011 11:03 PM, Joel Uckelman wrote:
Thus spake ceki:
Hi Joel,
Which version of Janino is on your class path?
Janino 2.6.1, which I believe is the current release.
For janino 2.6.x, you also need commons-compiler.jar (part of the janino distribution) on the class path. -- Ceki http://twitter.com/#!/ceki

Thus spake ceki:
Hi Joel,
Which version of Janino is on your class path?
Janino 2.6.1, which I believe is the current release.
For janino 2.6.x, you also need commons-compiler.jar (part of the janino distribution) on the class path.
I do have commons-compiler.jar on my classpath. -- J.

Thus spake Joel Uckelman:
Thus spake ceki:
Hi Joel,
Which version of Janino is on your class path?
Janino 2.6.1, which I believe is the current release.
For janino 2.6.x, you also need commons-compiler.jar (part of the janino distribution) on the class path.
I do have commons-compiler.jar on my classpath.
The change in d7038b0e which addresses LBCORE-210 fixes my problem with Janino. Is there an ETA for when this change will be in a release? -- J.
participants (2)
-
ceki
-
Joel Uckelman