The JMS and Socket appenders in Logback do not allow you to specify an encoder. If you want to do that you need to add a getter and setter for that to your version of the JMSQueueAppender. However, if you really want a String instead of a byte array you can just as easily use a Layout instead of an encoder.
We have this configuration
<configuration>
...
<conversionRule conversionWord="ourcaller"
converterClass="com.whatever.CallerDataConverter" />
<appender name="jms" class="com.whatever.JMSQueueAppender">
<encoder>
<pattern>%d %-5p [%t] %ourcaller{1} - %m%n</pattern>
</encoder>
</appender>
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d %-5p [%t] %ourcaller{1} %n - %m%n</pattern>
</encoder>
</appender>
...
======================================
This configuration produces these errors:
3:21:43,935 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@18:14 - no applicable action for [encoder], current pattern is [[configuration][appender][encoder]]
13:21:43,935 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@19:16 - no applicable action for [pattern], current pattern is [[configuration][appender][encoder][pattern]]
The line numbers here refer to the JMSQueueAppender. The console appender which is structured basically identically has no such problem.
What is Joran trying to tell me here. It appears to be telling me the pattern I am using, but does not tell me why it finds this objectionable.
Thanks.
_______________________________________________
Logback-user mailing list
Logback-user@qos.ch
http://mailman.qos.ch/mailman/listinfo/logback-user