log4Net如何能做到只有发生error时才出力SQL文?
log4Net和iBatis结合,如何能做到只有发生error时才出力SQL文?log4Net.config理的配置如下:
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
<!--アプリケーションログ出力ファイルパス-->
<!--<param name="File" value="log\ERR" />-->
<param name="File" value="..\wwdg\log\app\ERR" />
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Date" />
<!--アプリケーションログ出力ファイル拡張子-->
<param name="DatePattern" value="_yyyyMM.LOG" />
<param name="ConfigFileExtension" value="log"/>
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n%d{yyyy/MM/dd HH:mm:ss} %L%m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="levelMin" value="DEBUG" />
<param name="levelMax" value="FATAL" />
</filter>
<!--<filter type="log4net.Filter.StringMatchFilter">
<param name="StringToMatch" value="Error"/>
</filter>-->
<filter type="log4net.Filter.StringMatchFilter">
<param name="StringToMatch" value="Exception"/>
<param name="AcceptOnMatch" value="true"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>
<root>
<!--アプリケーションログレベル-->
<level value="Debug"/>
<appender-ref ref="rollingFile"/>
</root>
<!--<logger name="IBatisNet.DataMapper.Configuration.Cache.CacheModel">
<level value="ERROR" />
</logger>-->
<logger name="IBatisNet.DataMapper.Configuration.Statements.PreparedStatementFactory">
<level value="ERROR" />
</logger>
<!--<logger name="IBatisNet.DataMapper.LazyLoadList">
<level value="ERROR" />
</logger>
<logger name="IBatisNet.DataAccess.DaoSession">
<level value="ERROR" />
</logger>-->
<logger name="IBatisNet.DataMapper.SqlMapSession">
<level value="ERROR" />
</logger>
<!--<logger name="IBatisNet.Common.Transaction.TransactionScope">
<level value="ERROR" />
</logger>
<logger name="IBatisNet.DataAccess.Configuration.DaoProxy">
<level value="ERROR" />
</logger>-->
</log4net>
</configuration>
web.config里的配置如下:
<configSections>
<sectionGroup name="iBATIS">
<section name="logging" type="IBatisNet.Common.Logging.ConfigurationSectionHandler, IBatisNet.Common"/>
</sectionGroup>
</configSections>
<iBATIS>
<logging>
<logFactoryAdapter
type="IBatisNet.Common.Logging.Impl.Log4NetLoggerFA, IBatisNet.Common.Logging.Log4Net">
<arg key="configType" value="file-watch"/>
<arg key="configFile" value="log4net.config" />
<arg key="level" value="ERROR" />
</logFactoryAdapter>
</logging>
</iBATIS>
按照如上的配置现在在debug级别能够打出sql文,但是我想在只有sql文有异常时才打出该sql文。
请问有什么解决方法吗? --------------------编程问答-------------------- 哟系~ --------------------编程问答-------------------- 麻烦大家,帮帮忙。 --------------------编程问答-------------------- ?????????????????????????????? --------------------编程问答-------------------- 应该有帮助文档,你找了来看看吧!里面应该有个级别属性可以设置,你把它设置为error就可以了. --------------------编程问答--------------------
<root>
<!--アプリケーションログレベル-->
<level value="ALL"/>
<appender-ref ref="rollingFile"/>
</root>
级别改成ALL
这是优先顺序FATAL < ERROR < WARN < INFO < DEBUG
你可以选择比ERROR大的 也就是说是FATAL システム停止するような致命的な障害
--------------------编程问答-------------------- 也就是说选择优先大的 比他小的级别也可以打印出来 包含关系 debug是最小的所以只能打印debug
一般我就用ALL 比较灵活些 --------------------编程问答-------------------- 我现在想要的是只把当前有错误的sql文打出来,如果把级别设置为All的话还是把其它的sql文也打出来了。
但是如果把设置为error级别时,按照我现在的配置打不出来sql文
<root>
<!--アプリケーションログレベル-->
<level value="error"/>
<appender-ref ref="rollingFile"/>
</root> --------------------编程问答--------------------
就是这样 --------------------编程问答--------------------
我在强调一下:
如果按照楼上说的它会把没有错误的sql文也打出来,但是我只想打出有错误的那条sql语句,其它的都不打出来 --------------------编程问答-------------------- 巴 嘎
--------------------编程问答-------------------- 你可以根据不同的级别分别保存到指定文件中 error就打印到error.log中 debug就打印到debug.log中
分开来打印 --------------------编程问答-------------------- 看看....... --------------------编程问答--------------------
请问如果把级别设置为error时,如何才能打出sql文,按照最上面所贴出的配置文件还需要改什么地方啊?
补充:.NET技术 , C#