Has anyone been able to ge ch.qos.logback.classic.net.SMTPAppender working? According to http://static.springsource.org/s2-dm...serviceability...
Here is my entire config/serviceability.xml... [you] have the complete range of Logback's appenders available for your use.
but on startup I get the following error:Code:<configuration> <appender name="EMAILER" class="ch.qos.logback.classic.net.SMTPAppender"> <SMTPHost>smtp.example.org</SMTPHost> <To>me@example.org</To> <From>noreply@example.org</From> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %msg %ex%n</Pattern> </layout> </appender> <appender name="LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>serviceability/logs/log.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <FileNamePattern>serviceability/logs/log_%i.log</FileNamePattern> <MinIndex>1</MinIndex> <MaxIndex>4</MaxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %msg %ex%n</Pattern> </layout> </appender> <appender name="EVENT_LOG_STDOUT" class="com.springsource.osgi.medic.log.logback.ReroutingAwareConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %msg %ex%n</Pattern> </layout> </appender> <root level="WARN"> <appender-ref ref="LOG_FILE" /> </root> <logger level="DEBUG" additivity="false" name="org.example"> <appender-ref ref="EVENT_LOG_STDOUT" /> <appender-ref ref="EMAILER" /> </logger> </configuration>
Using 2.0.0.RELEASE with Java 1.6 on Linux. We would really love to be able to have errors emailed to us via logback. Any help would be appreciated.Code:com.springsource.osgi.medic.log.impl.logback.LoggerContextConfigurationFailedException: Configuration failed with the following problems: [Could not create an Appender of type [ch.qos.logback.classic.net.SMTPAppender]., ActionException in Action for tag [appender], Could not find an appender named [EMAILER]. Did you define it below in the config file?, See http://logback.qos.ch/codes.html#appender_order for more details.] at com.springsource.osgi.medic.log.impl.logback.JoranLoggerContextConfigurer.reportFailureIfNecessary(JoranLoggerContextConfigurer.java:55) at com.springsource.osgi.medic.log.impl.logback.JoranLoggerContextConfigurer.applyConfiguration(JoranLoggerContextConfigurer.java:47) at com.springsource.osgi.medic.log.impl.logback.StandardContextSelectorDelegate.configureDefaultContext(StandardContextSelectorDelegate.java:138) at com.springsource.osgi.medic.log.impl.logback.DelegatingContextSelector.configureDefaultContextIfNecessary(DelegatingContextSelector.java:46) at com.springsource.osgi.medic.log.impl.logback.DelegatingContextSelector.setDefaultLoggerContext(DelegatingContextSelector.java:39) at com.springsource.osgi.medic.log.impl.logback.DelegatingContextSelector.<init>(DelegatingContextSelector.java:34) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at org.slf4j.impl.StaticLoggerBinder.dynamicalContextSelector(StaticLoggerBinder.java:139) at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:105) at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:60) at org.slf4j.LoggerFactory.getSingleton(LoggerFactory.java:230) at org.slf4j.LoggerFactory.bind(LoggerFactory.java:121) at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:112) at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:275) at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:248) at com.springsource.osgi.medic.log.impl.LoggingPrintStreamWrapper.<init>(LoggingPrintStreamWrapper.java:73) at com.springsource.osgi.medic.impl.MedicActivator.wrapPrintStream(MedicActivator.java:190) at com.springsource.osgi.medic.impl.MedicActivator.logStart(MedicActivator.java:178) at com.springsource.osgi.medic.impl.MedicActivator.start(MedicActivator.java:112) at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783) at java.security.AccessController.doPrivileged(Native Method) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755) at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352) at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:280) at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:272) at com.springsource.osgi.launcher.FrameworkBuilder.installAndStartBundles(FrameworkBuilder.java:178) at com.springsource.osgi.launcher.FrameworkBuilder.start(FrameworkBuilder.java:160) at com.springsource.osgi.launcher.Launcher.main(Launcher.java:58) com.springsource.osgi.medic.log.impl.logback.LoggerContextConfigurationFailedException: Configuration failed with the following problems: [Could not create an Appender of type [ch.qos.logback.classic.net.SMTPAppender]., ActionException in Action for tag [appender], Could not find an appender named [EMAILER]. Did you define it below in the config file?, See http://logback.qos.ch/codes.html#appender_order for more details.] at com.springsource.osgi.medic.log.impl.logback.JoranLoggerContextConfigurer.reportFailureIfNecessary(JoranLoggerContextConfigurer.java:55) at com.springsource.osgi.medic.log.impl.logback.JoranLoggerContextConfigurer.applyConfiguration(JoranLoggerContextConfigurer.java:47) at com.springsource.osgi.medic.log.impl.logback.StandardContextSelectorDelegate.createConfiguredContext(StandardContextSelectorDelegate.java:118) at com.springsource.osgi.medic.log.impl.logback.StandardContextSelectorDelegate.getLoggerContext(StandardContextSelectorDelegate.java:99) at com.springsource.osgi.medic.log.impl.logback.DelegatingContextSelector.getLoggerContext(DelegatingContextSelector.java:74) at org.slf4j.impl.StaticLoggerBinder.getLoggerFactory(StaticLoggerBinder.java:151) at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:280) at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:248) at com.springsource.osgi.medic.log.impl.LoggingPrintStreamWrapper.<init>(LoggingPrintStreamWrapper.java:73) at com.springsource.osgi.medic.impl.MedicActivator.wrapPrintStream(MedicActivator.java:190) at com.springsource.osgi.medic.impl.MedicActivator.logStart(MedicActivator.java:178) at com.springsource.osgi.medic.impl.MedicActivator.start(MedicActivator.java:112) at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783) at java.security.AccessController.doPrivileged(Native Method) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755) at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352) at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:280) at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:272) at com.springsource.osgi.launcher.FrameworkBuilder.installAndStartBundles(FrameworkBuilder.java:178) at com.springsource.osgi.launcher.FrameworkBuilder.start(FrameworkBuilder.java:160) at com.springsource.osgi.launcher.Launcher.main(Launcher.java:58)


