The correct property name is this: log4j.logger.org.apache.cayenne.log.JdbcEventLogger=WARN
Otherwise, you can do it programmatically for log4j too. Logger.getLogger(JdbcEventLogger.class).setLevel(Level.WARN); On Sun, Feb 1, 2026 at 9:34 AM Robert A. Decker <[email protected]> wrote: > I'm on cayenne 4.2 running in spring. > > I'm building my server runtime in code so that I can have my own pk > generator (see below). > > I have the following application property which seems to be ignored: > log4j.logger.org.apache.cayenne.access.QueryLogger = WARN > > Since I'm building the runtime by hand do I also need to create my own > logger? > > In my logfiles, it's logging at level INFO, with the logger interface > org.apache.cayenne.log.JdbcEventLogger. > 2026-02-01T16:24:50.986+01:00 INFO 13688 --- [ai] [ scheduling-1] > org.apache.cayenne.log.JdbcEventLogger : === returned 0 rows. - took 18 > ms. > > Rob > > cayenneRuntime = ServerRuntime.builder() > .addConfig("cayenne-project.xml") > .addModule(binder -> > ServerModule.contributePkGenerators(binder) > .put(MySQLAdapter.class.getName(), > SmsPkGenerator.class)) > .dataSource(DataSourceBuilder > > .url(environment.getProperty("org.apache.cayenne.datasource.jdbc.url")) > > .driver(environment.getProperty("org.apache.cayenne.datasource.jdbc.driver")) > > .userName(environment.getProperty("org.apache.cayenne.datasource.jdbc.username")) > > .password(environment.getProperty("org.apache.cayenne.datasource.jdbc.password")) > > .pool(Integer.parseInt(Objects.requireNonNull(environment.getProperty("org.apache.cayenne.datasource.jdbc.minConnections"))), > > Integer.parseInt(Objects.requireNonNull(environment.getProperty("org.apache.cayenne.datasource.jdbc.maxConnections")))) > .build()) > .build(); >
