Я получил следующее на работу;определите источник ODBC с именем LPErrorLog, определите логгер входа в систему с некоторым паролем (abc123), настройте SQLServer для поддержки аутентификации WIndows и SQLServer.Протестируйте свой источник ODBC, убедитесь, что вы можете войти и получить доступ к целевой БД (LPErrorLog в примере ниже), сконфигурируйте ваш ConversionPattern, чтобы он соответствовал полям вашей БД.Временно сконфигурируйте тот же ConversionPattern для обычного файлового приложения, затем зафиксируйте полученную строку INSERT INTO из файла после входа в нее, перетащите ее в сценарий SQL Server Management Studio и выполните, чтобы убедиться, что она вставляет то, что вы хотите, в целевую БД, что это удаётся.
<appender name="MySqlAppender" class="org.apache.log4j.odbc.ODBCAppender">
<param name="URL" value="DSN=LPLogStore;Server=localhost\SQLEXPRESS;Database=LPErrorLog;Uid=logger;Pwd=abc123"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="INSERT INTO [LPErrorLog].[dbo].[errorlog] ([Logger],[LogTime],[Level],[FileName],[Location],[LineNo],[Message]) VALUES ('%c','%d{dd MMM yyyy HH:mm:ss,SSS}','%p','%F','%l','%L','%m')" />
</layout>