是否可以在使用 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)配置您的 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>
关于c++ - Log4Cxx sql server appender,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6100860/