Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以编程方式配置LogBack DBAppender_Java_Logging_Logback - Fatal编程技术网

Java 以编程方式配置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

我试图让LogBack DBAppender通过编程配置工作,但似乎无法让它正常工作

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);