Logentries + AWS兼容性

问题描述:

我正在开发一个使用Wildfly(和maven)的Java Web应用程序,我想用https://logentries.com/doc/java/#logback中描述的Logback来使用logentry。Logentries + AWS兼容性

我也使用AWS SDK进行某些操作,它似乎是logentries和AWS SDK之间的不兼容。

如果我删除aws-java-sdk(1.7.11),logentries就像一个魅力。但只要我添加它,我收到以下错误:

14:36:25,329 INFO [stdout] (default task-32) DEBUG: JavaMail version 1.5.1 
14:36:25,330 INFO [stdout] (default task-32) DEBUG: URL vfs:/home/lucasferreira/Desenvolvimento/2.Servidores/wildfly-8.1.0.Final/standalone/deployments/server-1.0-SNAPSHOT.war/WEB-INF/lib/aws-java-sdk-1.7.11.jar/META-INF/javamail.providers 
14:36:25,330 INFO [stdout] (default task-32) DEBUG: Bad provider entry: 
14:36:25,330 INFO [stdout] (default task-32) DEBUG: successfully loaded resource: vfs:/home/lucasferreira/Desenvolvimento/2.Servidores/wildfly-8.1.0.Final/standalone/deployments/server-1.0-SNAPSHOT.war/WEB-INF/lib/aws-java-sdk-1.7.11.jar/META-INF/javamail.providers 
14:36:25,331 INFO [stdout] (default task-32) DEBUG: successfully loaded resource: /META-INF/javamail.default.providers 
14:36:25,331 INFO [stdout] (default task-32) DEBUG: Tables of loaded providers 
14:36:25,331 INFO [stdout] (default task-32) DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle], com.amazonaws.services.simpleemail.AWSJavaMailTransport=javax.mail.Provider[TRANSPORT,aws,com.amazonaws.services.simpleemail.AWSJavaMailTransport,Amazon Web Services LLC]} 
14:36:25,331 INFO [stdout] (default task-32) DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle], aws=javax.mail.Provider[TRANSPORT,aws,com.amazonaws.services.simpleemail.AWSJavaMailTransport,Amazon Web Services LLC]} 
14:36:25,332 INFO [stdout] (default task-32) DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map 

14:36:25,339 INFO [stdout] (default task-32) 14:36:25.338 [default task-32] INFO logentries - Test message 

而且我的logentries帐户中没有收到该消息。

经过一番研究,我发现亚马逊的SDK与javamail配置混淆,过去有一些问题(http://www.thebuzzmedia.com/javamail-smtp-on-localhost-fails-with-amazon-aws-sdk-in-classpath/)。 有没有我可以使用的解决方法或修复方法?这是AWS SDK问题还是logentries问题?

我从Logentries支持工程师回答:


斯蒂芬·海因斯(Logentries) 09月22日12:04

嘿卢卡斯,

虽然我们深入了解一下这个问题我们可以做以下解决方法。我们可以登录到一个文件并使用我们的代理(https://logentries.com/doc/agent/)将日志发送到Logentry。否则,我们可以做的就是使用另一个API将Logs发送给Logentries。这个API目前没有记录,但是如果你想尝试它,那么你可以效仿的榜样(这里https://github.com/BrightcoveOS/Diamond/blob/master/src/diamond/handler/logentries_diamond.py#L91看)

基本上你发送POST请求到使用您的登录凭证作为URL的一部分给定的地址。然后,您需要确定您的日志包含在包含字段“events:”的JSON对象中。如果你不这样做,你会得到一个错误(但日志仍然会通过)。

问候, 斯蒂芬

支持工程师


邮政解决方案通过增加信息到事件领域工作。

发个帖子https://js.logentries.com/v1/logs/logentries_TOKEN

具有以下JSON在身:

{ 
    "event":{ 
     "key":"value", 
     "key2":"value2", 
     "key3" : "value3" 
    } 
    } 

假设AWS分析是正确的(听起来是正确的),您应该能够通过明确询问“smtp”传输并使用它来发送消息来解决此问题。 This JavaMail FAQ entry显示了基本的方法。

+0

与解决方案的问题是,我不直接调用jamail。 我调用一个配置为与logentries一起工作的日志功能,并且内部logentry使用javamail将我的数据发送到他们的服务器。所以我没有访问该代码来明确要求smtp。 – 2014-09-15 12:20:17

+0

只是补充说,使用我自己做了一个jamail功能与解决方案的一个概念测试做了工作,从而证实该假说认为,AWS没有真正用JavaMail配置惹虽然他们应该已经固定它通过他们的更新日志来看。 – 2014-09-15 12:22:46