使用Log4Cxx时,是否可以将日志写入MS SQL server?我已经用谷歌搜索了一段时间,找到了一些使用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> 也许我只需要“Driver”字段的正确值?我使用的是MS SQL Server 2008。
谢谢!
发布于 2013-03-28 01:06:23
我已经完成了以下工作:定义一个名为LPErrorLog的ODBC源,使用某个密码(Abc123)定义一个登录“记录器”,配置SQLServer以同时支持WIndows和SQLServer身份验证。测试您的ODBC源,确保您可以登录并访问目标DB (下面示例中的LPErrorLog)配置您的ConversionPattern以匹配您的DB中的字段。为一个普通的文件附加器临时配置相同的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>
https://stackoverflow.com/questions/6100860
复制相似问题