【发布时间】:2019-11-15 06:57:46
【问题描述】:
我有一个 Spring Boot 应用程序,我想在这个应用程序中使用 log4j。问题是我有一个 JDBC 附加程序,例如 (log4j2.xml);
<JDBC name="customDBAppender" tableName="mytable">
<ConnectionFactory
class="com.example.logger.ConnectionFactory" method="getConnection" />
....
</JDBC>
我有一个静态 getConnection 方法,我需要在这个方法中访问我的数据库属性(用户名、密码)。
我认为 log4j 使用反射来创建与此方法的连接(甚至在 Spring 上下文初始化之前),因此我无法使用 Spring 注入我的数据库属性。有没有办法注入这个属性?
我的 ConnectionFactory 类;
public class ConnectionFactory {
public static Connection getConnection() throws SQLException {
Connection connection = new Connection("dbusername", "dbpassword".....)
....
}
}
【问题讨论】:
-
在您的类中添加
static final Logger logger = LogManager.getLogger(ConnectionFactory.class);,并在您的#getConnexion()方法中添加例如:logger.info("myMessage");。 -
相信stackoverflow.com/questions/25670449/…中的解决方案可以帮到你
标签: java spring spring-boot log4j2