我想通过log4j在java应用程序中发送邮件通知。但是第一次尝试使用configurated log4j.properties文件,就像魅力一样。但由于我想要一个在运行时生成的动态主题,我尝试了以下命令,但没有成功:
final static Logger logger = Logger.getRootLogger();
...
public static mail(String msg, String subj) {
SMTPAppender mailAppend = new SMTPAppender();
mailAppend.setBufferSize(3);
mailAppend.setSMTPHost("smtphostname");
mailAppend.setTo("ex@mple.com");
mailAppend.setSubject(subj);
logger.addAppender(mailAppend);
logger.error(msg);
}
输出:
log4j:ERROR Message object not configured.
所以我错过了一个必要的吸气剂?
答案 0 :(得分:0)
可以使用xml或属性配置SMTPAppender 文件或手动使用setter。当你使用setter时,你需要 通过调用函数activateOptions或激活选项 否则你会收到“ERROR Message object not configured”消息。 这是为了确保选项只有在有效时才会生效 所有相关选项都已设定(例如,人们不希望有 在设置端口之前,主机设置生效。)
FROM:https://community.oracle.com/thread/1758275?start=0&tstart=0