c++ - Log4Cxx sql server appender

标签 c++ sql-server log4j appender log4cxx

是否可以在使用 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/

相关文章:

.net - Azure:用户登录失败

sql - 为什么在关系数据库中不支持从存储过程中进行选择?

c++ - 我应该只使用 std::vector 吗?

c++ - 是否需要将 delete 用于在 vector 中创建的新数组?

c++ - 双重功能返回

java - log4j:WARN org.apache.log4j.ConsoleAppender 中没有这样的属性 [append]

java - Elasticsearch 中的 log4j 升级

c++ - 学习C++或C

sql-server - SQL : IS NULL not working

java - 我如何让 jboss 显示 log.debug 消息?