Java 以编程方式配置LogBack DBAppender
我试图让LogBack DBAppender通过编程配置工作,但似乎无法让它正常工作Java 以编程方式配置LogBack DBAppender,java,logging,logback,Java,Logging,Logback,我试图让LogBack DBAppender通过编程配置工作,但似乎无法让它正常工作 LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); DBAppender dbAppender = new DBAppender(); dbAppender.setContext(lc); DriverManagerConnectionSource connectionSource = new DriverManagerCo
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
DBAppender dbAppender = new DBAppender();
dbAppender.setContext(lc);
DriverManagerConnectionSource connectionSource = new DriverManagerConnectionSource();
connectionSource.setDriverClass("com.mysql.jdbc.Driver");
connectionSource.setUrl(loggingConnectionInfo.getUri());
connectionSource.setUser(loggingConnectionInfo.getUser());
connectionSource.setPassword(loggingConnectionInfo.getPassword());
connectionSource.setContext(lc);
connectionSource.start();
dbAppender.setConnectionSource(connectionSource);
dbAppender.start();
logger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
logger.setLevel(Level.DEBUG);
logger.addAppender(dbAppender);
你知道会出什么问题吗?我在控制台中看到一个日志,但没有任何内容进入数据库。我已经和这件事斗争了一段时间,如果有任何见解,我将不胜感激 我相信@ebensing发现了问题所在,那就是
LoggerContext
。这是一个工作版本,最大的区别是logger.getLoggerContext()
:
您是否已经在数据库中设置了
loggingConnectionInfo.getUri()
指向的表?是的,所有这些都已设置完毕,使用XML配置安装时一切正常。我以前尝试过,但没有成功。我认为主要原因是与数据库的连接不好(整个mysql“%”不包括localhost,doh)
Logger logger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
logger.setLevel(Level.DEBUG);
DriverManagerConnectionSource connSource = new DriverManagerConnectionSource();
connSource.setDataSource(ds);
connSource.setContext(logger.getLoggerContext());
connSource.start();
DBAppender dbAppender = new DBAppender();
dbAppender.setConnectionSource(connSource);
dbAppender.setContext(logger.getLoggerContext());
dbAppender.start();
logger.addAppender(dbAppender);