Log4Cxx sql server appender

Log4Cxx sql server appender

本文关键字:appender server sql Log4Cxx      更新时间:2023-10-16

使用Log4Cxx时,是否可以将日志写入MS SQL服务器?我已经在谷歌上搜索了一段时间,并发现了一些使用 ODBCAppender 的示例。例如:

<appender name="MyOdbcMysqlAppender" class="org.apache.log4j.odbc.ODBCAppender">
    <param name="URL" value="Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=errorlog;User=logger;Password=abc123;Option=3;"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="INSERT INTO errorlog (errormessage) VALUES ('%d - %c - %p - %m')"/>
    </layout>
</appender> 

也许我只需要"驱动程序"字段的正确值?我正在使用MS SQL Server 2008。

谢谢!

我已经得到了以下工作;定义一个名为LPErrorLog的ODBC源,定义一个带有一些密码(abc123)的登录"记录器",配置SQLServer以支持WIndows和SQLServer身份验证。 测试您的 ODBC 源,确保您可以登录并访问目标数据库(下面的示例中为 LPErrorLog),配置转换模式以匹配数据库中的字段。 为普通文件追加器临时配置相同的转换模式,然后在记录到文件后从文件中删除生成的 INSERT INTO 字符串,将其放入 SQL Server Management Studio 脚本中,然后执行它以验证它是否将所需的内容插入目标数据库,以及它是否成功。

<appender name="MySqlAppender" class="org.apache.log4j.odbc.ODBCAppender">
 <param name="URL" value="DSN=LPLogStore;Server=localhostSQLEXPRESS;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>