java - 尝试使用 logback 和 spring boot 通过 gmail 发送邮件时出错

标签 java spring email spring-boot logback

我正在使用 Spring Boot:1.4.0。通过在 logback 中进行以下配置,我正在尝试向 gmail 发送邮件。

<appender name="EMAIL" class="ch.qos.logback.classic.net.SMTPAppender">
    <smtpHost>smtp.gmail.com</smtpHost>
    <smtpPort>25</smtpPort>
    <SSL>true</SSL>
    <username>*</username>
    <password>*</password>

    <to>*</to>
    <from>*</from>
    <subject>TESTING: %logger{20} - %m</subject>
    <layout class="ch.qos.logback.classic.PatternLayout">
        <pattern>%date %-5level %logger{35} - %message%n</pattern>
    </layout>
</appender>

<root level="DEBUG">
    <appender-ref ref="EMAIL" />
</root>

但出现以下异常

Exception in thread "main" java.lang.IllegalStateException: Logback configuration error detected: 
ERROR in ch.qos.logback.core.joran.action.NestedBasicPropertyIA - Unexpected aggregationType AS_BASIC_PROPERTY_COLLECTION
at       org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:152)
at org.springframework.boot.logging.logback.LogbackLoggingSystem.reinitialize(LogbackLoggingSystem.java:195)
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:106)
at org.springframework.boot.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:289)
at org.springframework.boot.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:262)
at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:231)
at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:207)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:166)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:121)
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:68)
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:336)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:308)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1182)

Spring Boot主程序

public static void main(String[] args) {
    System.setProperty("log.name", "dynamicLogs");
    logger.debug("Start running debug");
    SpringApplication.run(WebApplication.class, args);
    logger.error("Start running error");            
}

如果我尝试运行一个测试java程序,它运行得很好。不确定使用 Spring Boot 运行时出现什么问题。缺少任何要设置的属性?

最佳答案

logback 版本 1.1.7 存在一些问题。 Spring Boot 1.3.4 和 1.3.5 依赖于此版本,因此 1.4.0 也可能依赖于此版本。

您可以尝试强制使用旧/新版本的 logback。

更多信息请参见 https://github.com/logstash/logstash-logback-encoder/issues/160

关于java - 尝试使用 logback 和 spring boot 通过 gmail 发送邮件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37527858/

相关文章:

java - GeoHash 函数没有返回正确的结果

java - JAXB:编码后替换 namespace

java - 空文件的 Spring 集成文件标记

java - 为什么会出现这些重复案例?

java - 使用 WebTestClient 在 springBootTest 中禁用安全性

java - 需要以编程方式配置 Hibernate sessionFactory 结果为 'sessionFactory' 或 'hibernateTemplate'

python - 检测电子邮件是否为 "Delivery Status Notification"并提取信息 - Python

php - 如何配置服务器以使用 cPanel 发送电子邮件?

java - 无法解析 Java MIME 邮件消息

java - Solr : How to add conditions in Boost function query