Просто чтобы убедиться;Вы не можете использовать log4j и использовать JDBCAppender или DBAppender?( Войдите в базу данных, используя log4j )
РЕДАКТИРОВАТЬ:
Мое предложение будет иметь именованный appender, который входит в базу данных.
Byотключив аддитивность (log4j.additivity.database=false
), он не будет «выталкивать» операторы журнала в корневой логгер, сохраняя эти данные из файла / консоли журнала по умолчанию.Именованный регистратор может быть извлечен с помощью Logger.getLogger("database");
из разных мест исходного кода.
РЕДАКТИРОВАТЬ 2:
Я думаю, что было бы лучше оставить исходный вопрос и задатьновый, но здесь идет.:)
Заявитель должен содержать информацию о соединении с базой данных, либо как ссылку на соединение: <param name="connector" value="name.of.existing.ConnectionHandler" />
, либо путем указания url
, username
и password
.
При настройке регистратора имя является важным битом для получения регистратора.Установив аддитивность регистраторов к fale, вы не сможете добавить эту запись в регистратор по умолчанию, заданный <root>
в конфигурации:
<appender name="JDBC" class="org.apache.log4j.jdbcplus.JDBCAppender">
[...]
</appender>
<logger name="myLogger" additivity="false">
<appender-ref ref="JDBC"/>
[...]
</logger>
Теперь вы можете ссылаться на регистратор в коде Java с помощью:
private static final Logger usageLog = Logger.getLog("myLogger");
из любого файла Java.Затем вы используете регистратор, как всегда, с usageLog.debug("Debug message");
или чем-то еще.
РЕДАКТИРОВАТЬ 3:
См. PatternLayout javaDoc , какие флаги использовать в ConversionPattern.