WAS上log4j日志不能输出(ibatis)sql语句解决办法

合集下载

ibatis打印sql语句

ibatis打印sql语句

ibatis打印sql语句ibatis是一个开源的持久层框架,它可以将Java对象和SQL语句映射起来,从而简化数据库操作。

在开发和调试过程中,有时我们需要查看ibatis执行的sql语句,以便检查是否有错误或者优化性能。

本文将介绍如何使用ibatis打印sql语句,以及一些常见的问题和解决方法。

一、配置日志要想让ibatis打印sql语句,首先需要配置日志。

ibatis支持多种日志框架,如log4j、slf4j、commons-logging等。

我们可以根据自己的项目需求选择合适的日志框架,并在classpath下添加相应的jar包和配置文件。

以log4j为例,我们需要在classpath下添加log4j.jar和log4j.properties文件。

log4j.properties文件的内容如下:# 设置日志输出级别为debuglog4j.rootLogger=debug, stdout# 设置日志输出目标为控制台log4j.appender.stdout=org.apache.log4j.ConsoleAppender# 设置日志输出格式yout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n然后,我们需要在ibatis的配置文件中指定使用log4j作为日志框架。

ibatis的配置文件一般是sqlMapConfig.xml,它位于classpath下的某个目录中,例如com/example/dao/sqlMapConfig.xml。

在这个文件中,我们需要添加如下的属性:<settings><!-- 设置日志实现类为log4j --><setting name="logImpl"value="LOG4J"/></settings>这样,我们就完成了ibatis打印sql语句的基本配置。

使用log4j2打印Log,log4j不能打印日志信息,log4j2不能打印日志信息,lo。。。

使用log4j2打印Log,log4j不能打印日志信息,log4j2不能打印日志信息,lo。。。

使⽤log4j2打印Log,log4j不能打印⽇志信息,log4j2不能打印⽇志信息,lo。

说来惭愧,今天就写了个"hello world",了解了⼀下log4j的⽇志。

本来是想在控制台打印个log信息,也是遇到坎坷重重,开始也没去了解log4j就来使⽤,log4j配置⽂件开始⽤的log4j.properties,结果控制台⼀直打印ERROR StatusLogger No log4j2 configuration file found.也就是Log4j2配置⽂件没找到的意思。

我就把log4j.properties⽂件名改成log4j2.properties,结果不报错了,但是就是不打印⽇志,直接就结束运⾏了(Process finished with exit code 0),现在想想好愚蠢啊。

后来经过百般折腾,发现log4j是log4j,log4j2是log4j2,不能混⽤啊,但它们都是出⾃同⼀个公司,log4j2顾名思义是第⼆代,是log4j的优化升级版。

log4j的配置⽂件是log4j.properties,是以.properties后缀名结尾的⽂件命名,⽽log4j2的配置⽂件⼀般是xml⽂件或json,以.xml或.json 后缀格式的命名,log4j更新到1.2.17版就停⽌了更新,发布了Log4j2; 我加⼊的jar包⼀直是log4j2的jar包,开始使⽤了log4j的配置⽂件(log4j.properties),所以⼀直打印不出来。

后来重新加⼊配置⽂件log4j2.xml后,就可以打印了。

maven的pom.xml⽂件中加⼊的依赖:加⼊log4j的实现和log4j核⼼包,如果版本号(version)在2.0以下,配置⽂件就是.properties了哦<!-- https:///artifact/org.apache.logging.log4j/log4j-slf4j-impl --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><version>2.6.2</version></dependency><!-- https:///artifact/org.apache.logging.log4j/log4j-core --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.6.2</version></dependency> 如果是springboot项⽬:需要排除⼀个logback的jar包,以免冲突: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><!--log4j-slf4j-impl与 logback-classic包不兼容,删除这个包 --><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId></exclusion></exclusions></dependency> log4j2.xml⽂件:⽹上复制的⼀个,写的挺全,由于我只⽤到在控制台打印输出,所以我把没⽤到的都注释了。

打印ibatis的SQL日志-通过log4j配置

打印ibatis的SQL日志-通过log4j配置

打印ibatis的SQL⽇志-通过log4j配置第⼀种:log4j.xml⽂件的1. <appender name="IBatis" class="org.apache.log4j.ConsoleAppender">2. <layout class="org.apache.log4j.PatternLayout">3. <param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n" />4. </layout>5. <filter class="org.apache.log4j.varia.LevelRangeFilter">6. <param name="LevelMin" value="DEBUG" />7. <param name="LevelMax" value="DEBUG" />8. </filter>9. </appender>10.11. <logger name="com.ibatis" additivity="true">12. <level value="DEBUG" />13. </logger>14. <logger name="java.sql.Connection" additivity="true">15. <level value="DEBUG" />16. </logger>17. <logger name="java.sql.Statement" additivity="true">18. <level value="DEBUG" />19. </logger>20. <logger name="java.sql.PreparedStatement" additivity="true">21. <level value="DEBUG" />22. <appender-ref ref="IBatis" />23. </logger>24. <logger name="java.sql.ResultSet" additivity="true">25. <level value="DEBUG" />26. <appender-ref ref="IBatis" />27. </logger>第⼆种:log4j.properties1. log4j.appender.stdout=org.apache.log4j.ConsoleAppender2. yout=org.apache.log4j.PatternLayout3. yout.ConversionPattern=%d %p [%c] - %m%n4.5.6. .ibatis=debug7. mon.jdbc.SimpleDataSource=debug8. mon.jdbc.ScriptRunner=debug9. .ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug10. log4j.logger.java.sql.Connection=debug11. log4j.logger.java.sql.Statement=debug12. log4j.logger.java.sql.PreparedStatement=debug,stdout。

一次Logback日志无法在Linux上输出的解决过程

一次Logback日志无法在Linux上输出的解决过程

⼀次Logback⽇志⽆法在Linux上输出的解决过程之前,在Linux上查看⽇志,⼀直是⽤:tail -f catalina.out 的⽅式,只能实时看,没有记录⽂件,很不⽅便于是决定把"⽼项⽬"(是spring MVC的项⽬,spring boot的绕道)的⽇志全部切换成logback的(⾄于为什么要选logback,有疑问的请⾃⾏百度),并以⽇志⽂件存留先说⼀下,⽼项⽬之前启动⼀直是有⼀个警告的:(A)SLF4J: Class path contains multiple SLF4J bindings. 就是有冲突⽇志⽂件,但是由于不影响项⽬启动,所以没有多管。

但是现在就是要管⼀管TA,由于⽼项⽬pom⽂件有点⼤,也有好多冗余,就不再说⼀些细节,提供⼀些解决问题的思考⽅向:最开始的警告是这样的:ERROR StatusLogger No Log4j context configuration provided. This is very unusual.SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/opt/min_meerkat_test/meerkat/apache-tomcat-7.0.79/webapps/meerkat-web/WEB-INF/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/opt/min_meerkat_test/meerkat/apache-tomcat-7.0.79/webapps/meerkat-web/WEB-INF/lib/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/opt/min_meerkat_test/meerkat/apache-tomcat-7.0.79/webapps/meerkat-web/WEB-INF/lib/slf4j-log4j12-1.6.6.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See /codes.html#multiple_bindings for an explanation.SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.第⼀步:直接在pom.xm⽤ <exclusion> 标签找到有引⼊其他⽇志依赖的,给“剔除”掉这⾥多说⼀下,有些⼀层依赖的,像下⾯zookeeper依赖这样的,剔除⽐较简单剔除如下: <dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.12</version><!--排除这个slf4j-log4j12--><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion><exclusion><groupId>log4j</groupId><artifactId>log4j</artifactId></exclusion></exclusions></dependency>但是有的是嵌套多层的,就⽐较⿇烦了,⽐如下⾯这种:剔除就⿇烦⼀点,如下:<dependency><groupId>org.apache.hive</groupId><artifactId>hive-common</artifactId><version>${hive.version}</version><exclusions><exclusion><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-1.2-api</artifactId></exclusion><exclusion><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId></exclusion><exclusion><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-web</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.apache.hive</groupId><artifactId>hive-jdbc</artifactId><version>${hive.version}</version><exclusions><exclusion><groupId>org.apache.hive</groupId><artifactId>hive-common</artifactId></exclusion></exclusions></dependency>PS:就是先把整个 hive-common 给剔除掉,但是这样对⼀些功能是有影响的,所以再单独引⼊ hive-common依赖,再在⾥⾯把不想要的⽇志包剔除掉其他的类似处理思路,如果依赖⽐较少,IDEA有⼀种很快发现重复依赖的⽅式:左侧maven最上⽅的⼀排图标⾥⾯,有⼀个Show Dependencies,点开看,⼗分⽅便!第⼆步:通过第⼀步的“剔除”,正常是应该把其他⾮logback的都⼲掉了的,但是有⼀些,或者项⽬乱七⼋糟的的依赖多了,你是发现不了的,那么还有⼀种⽅式,强⾏把其他⽇志的输出“适配”到SLF4j上,⽬前发现有这⼏种:<!-- log4j 输出到 slf4j --><dependency><groupId>org.slf4j</groupId><artifactId>log4j-over-slf4j</artifactId><version>${slf4j.version}</version></dependency><!-- common-logging 输出到 slf4j --><dependency><groupId>org.slf4j</groupId><artifactId>jcl-over-slf4j</artifactId><version>${slf4j.version}</version></dependency><!-- java.util.logging 输出到 slf4j --><dependency><groupId>org.slf4j</groupId><artifactId>jul-to-slf4j</artifactId><version>${slf4j.version}</version></dependency>就是把其他⽇志的输出强⾏⽤统⼀的SLF4j来打印,但是这样做会引发另⼀个警告:SLF4J: Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on the class path, preempting StackOverflowError.翻译⼀下就是:在类路径上检测到log4j-over-slf4j.jar和slf4j-log4j12.jar,防⽌堆栈溢出错误这⾥补充⼀点,笔者⽤第⼀步的⽅式剔除能找到的其他⽇志后,启动时发现还是警告:SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/D:/mavenStore/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in [jar:file:/D:/mavenStore/repository/org/slf4j/slf4j-log4j12/1.6.6/slf4j-log4j12-1.6.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]//SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]所以额外⼜引⼊了 log4j-over-slf4j 这个依赖,引⼊后,原来项⽬⽤ log4j 引⼊写⽇志的地⽅都会报错,需要⼀⼀修改过来!(笔者就是当发现项⽬开始报错时,就发现转机来了,后⾯处理的思路就清晰了。

Mybatis的Log4j日志输出问题-以及有关日志的所有问题

Mybatis的Log4j日志输出问题-以及有关日志的所有问题

Mybatis的Log4j⽇志输出问题-以及有关⽇志的所有问题使⽤Mybatis的时候,有些时候能输出(主要是指sql,参数,结果)⽇志。

有些时候就不能。

⽆法输出⽇志的时候,⽆论怎么配置log4j,不管是properties的还是xml的,都不起作⽤。

有些时候,我们没做什么配置就能输出⽇志....这是⼀个让⽆数⼈烦躁的问题。

其实解决问题很容易(我过了这么久才解决,以前都⽤拦截器输出)。

这是⼀个普⼤喜奔的⽇⼦,让我们⼀起来看看如何解决mybatis的⽇志问题。

为什么说这个问题很容易解决呢?因为mybatis的⽂档写的很清楚。

为什么我们都没找到解决办法呢?因为即使看过⽂档的⼈,也未必去看Logging这⼀节。

但是这⼀节正是解决问题的关键。

已经等不及的⼩伙伴们可以直接去这⾥看⽂档:提醒最常⽤的⽅法不再这个链接中,但是这个⽂档提供了对log4j的详细配置。

本⽂下⾯的内容⼤部分是这个⽂档的Copy。

Mybatis内置的⽇志⼯⼚提供⽇志功能,具体的⽇志实现有以下⼏种⽅式:SLF4JApache Commons LoggingLog4j 2Log4jJDK logging具体选择哪个⽇志实现由MyBatis的内置⽇志⼯⼚确定。

它会使⽤最先找到的(按上⽂列举的顺序查找)。

如果⼀个都未找到,⽇志功能就会被禁⽤。

不少应⽤服务器的classpath中已经包含Commons Logging,如Tomcat和WebShpere,所以MyBatis会把它作为具体的⽇志实现。

记住这点⾮常重要。

这意味着,在诸如 WebSphere的环境中——WebSphere提供了Commons Logging的私有实现,你的Log4J配置将被忽略。

这种做法不免让⼈悲摧,MyBatis怎么能忽略你的配置呢?事实上,因Commons Logging已经存在,按优先级Log4J⾃然就被忽略了!不过,如果你的应⽤部署在⼀个包含Commons Logging的环境,⽽你⼜想⽤其他的⽇志框架,你可以根据需要调⽤如下的某⼀⽅法:eSlf4jLogging();eLog4JLogging();eJdkLogging();eCommonsLogging();eStdOutLogging();如果的确需要调⽤以上的某个⽅法,请在调⽤所有其他MyBatis⽅法前调⽤它。

log4j打印mybatis执行sql,将占位符换成真实的参数输出

log4j打印mybatis执行sql,将占位符换成真实的参数输出

log4j打印mybatis执⾏sql,将占位符换成真实的参数输出背景:在我⽇常码代码的时候,由于对mybatis的动态sql,⽐较依赖,并且有时候需求复杂,导致sql较长,⽽且参数众多,当出现问题是,需要将sql,放到navicat⾥⾯去执⾏查看结果,但是对于复杂的sql来说,众多的参数,⼀个⼀个替换。

当真很⿇烦,于是萌⽣出可不可以将sql直接输出,不在出线sql和参数分开的情况,可以减少很多⿇烦,在我找度娘,⼀次⼜⼀次的尝试,我还是没有发现,在log4j的配置⽂件⾥⾯。

有这个功能,所以最后萌⽣出改写源码的想法,之后我也会尝试继续寻找,有没有官⽅的API提供,本⽂讲述我⾃⼰改写源代码实现的⽅案⼀、针对DEMO搭建SSM项⽬(略)⼆、采⽤的log4j的版本(这⾥由于log的众多实现,有可能出线log4j的冲突,⽽且我也没有滤的特别清楚,所以贴出⾃⼰使⽤的log4j的版本,采⽤maven提供)[html]1. <span style="white-space:pre;"> </span><!-- log4j ⽇志 -->2. <dependency>3. <groupId>log4j</groupId>4. <artifactId>log4j</artifactId>5. <version>${log4j-version}</version>6. </dependency>三、⾸先实现输出mybatis输出sql1、引⼊jar包(同上)2、配置mybatis输出sql的配置项[html]1. <span style="white-space:pre;"> </span><settings>2. <setting name="logImpl" value="LOG4J" />3. </settings>3、添加logj4j.properties⽂件[plain]1. #logFile2. log4j.rootLogger=DEBUG,Console3. #Console4. log4j.appender.Console=org.apache.log4j.ConsoleAppender5. log4j.appender.console.Threshold=INFO6. log4j.appender.console.ImmediateFlush=true7. log4j.appender.Console.Target=System.out8. yout=org.apache.log4j.PatternLayout9. yout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss}[%t] %l: %x%m%n10.11. # ⽇志⽂件(logFile)12. log4j.appender.logFile=org.apache.log4j.FileAppender13. log4j.appender.logFile.Threshold=DEBUG14. # ⽴即输出15. #log4j.appender.logFile.ImmediateFlush=true16. #log4j.appender.logFile.Append=true17. #log4j.appender.logFile.File=D:/logs/log.log4j18. #yout=org.apache.log4j.PatternLayout19. #yout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss}[%t] %l: %x%m%n20.21. .apache=ERROR22. .mybatis=ERROR23. .springframework=ERROR24. #这个需要25. log4j.logger.log4jdbc.debug=ERROR26.27. log4j.logger.jdbc.audit=ERROR28. log4j.logger.jdbc.resultset=ERROR29. #这个打印SQL语句⾮常重要30. log4j.logger.jdbc.sqlonly=DEBUG31. log4j.logger.jdbc.sqltiming=ERROR32. log4j.logger.jdbc.connection=FATAL4、测试结果[plain]1. ==> Preparing: select u.id as id , as name , u.pwd as pwd from user u where u.pwd = ? and u.id = ?;2. ==> Parameters: 123(String), 1(String)3. <== Total: 0显然:参数和sql是分离的,现在要实现将参数嵌套进sql中,实现上⾯的想法通过源码的分析最后我决定动(org.apache.ibatis.logging.jdbc.BaseJdbcLogger)这个类,它的作⽤是输出最后的sql ⽅法步骤:1、找到这个类的全路径,找到源码2、在src下创建⼀个同路径下的BaseJdbcLogger类,并且将源码原封不动的贴近刚创建的类,3、找到需要修改的⽅法,我贴⼀下我准备修改的⽅法[java]1. protected void debug(String text, boolean input) {2. if (statementLog.isDebugEnabled()) {3. statementLog.debug(prefix(input) + text);4. }5. }⽬前的这个是BaseJdbcLogger.debug的源码,其中(text:是需要打印的⽂本,input:表⽰前⾯的“==>”的⽅向)经过我的修改:[java]1. /* 打印的sql */2. private static String sql = "";3. protected void debug(String text, boolean input) {4. text = text.trim();5. if (statementLog.isDebugEnabled()) {6. if(text.startsWith("Preparing:")){7. sql = text.substring(text.indexOf(":")+1);8. return ;9. }10. if(text.startsWith("Parameters:")){11. String temp = text.substring(text.indexOf(":")+1);12. String[] split = temp.split(",");13. if(split != null & split.length > 0){14. for (String string2 : split) {15. String s = string2.trim();16. sql = sql.replaceFirst("\\?", s.substring(0, s.indexOf("(")));17. }18. }19. text = "Preparing:"+ sql ;20. sql = "";21. }22. statementLog.debug(prefix(input) + text);23. }24. }最终输出结果:[plain]1. ==> Preparing: select u.id as id , as name , u.pwd as pwd from user u where u.pwd = 123 and u.id = 1;2. <== Total: 0到到最终⽬的(虽然不是最好的⽅法,mybatis应该分装相应的配置,但是我没有发现,如果有码友发现了,请告知我,谢谢)。

IDEA中log4j无法输出到本地properties配置无效问题

IDEA中log4j无法输出到本地properties配置无效问题

IDEA中log4j⽆法输出到本地properties配置⽆效问题IDEA中log4j ⽆法输出到本地,properties配置⽆效问题。

log4j添加以后⽆法输出⽇志信息,经检查(按以下顺序):1.jar包导⼊正常2.log4j.properties配置⽂件正常可以输出,但是properties⽂件⽆效。

4.删除properties⽂件之后log依然可以输出,可判断properties⽂件失效,或被覆盖。

5.经过验证为框架本⾝默认的import java.util.logging.Logger优先级⾼于import org.apache.log4j.Logger;,在实例化Logger.getLogger();过程中,默认调⽤了框架本⾝的Logger类导致log4j失效。

解决⽅法:注意引⼊org.apache.log4j.Logger即可; 为⽅便使⽤可以在任意地⽅新建类并导⼊log4j.Logger,初始化logger对象。

import org.apache.log4j.Logger;public class TestLogger {static public Logger logger=Logger.getLogger(TestLogger.class);}在使⽤的时候,TestLogger.logger.debug("");("");TestLogger.logger.error("");.....。

当然,也可以结合logger与log4j实现⾃定义⽇志⼯⼚,⽤来容错,这⾥就不作延申。

总结以上所述是⼩编给⼤家介绍的IDEA中log4j ⽆法输出到本地 properties配置⽆效问题,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。

在此也⾮常感谢⼤家对⽹站的⽀持!如果你觉得本⽂对你有帮助,欢迎转载,烦请注明出处,谢谢!。

mybatis中的setting配置详解

mybatis中的setting配置详解

mybatis中的setting配置详解在mybaits中,setting的的配置参数如下(如果不在配置⽂件中配置将使⽤默认值):设置参数描述有效值默认值cacheEnabled 该配置影响的所有映射器中配置的缓存的全局开关true | false truelazyLoadingEnabled 延迟加载的全局开关。

当开启时,所有关联对象都会延迟加载。

特定关联关系中可通过设置fetchType属性来覆盖该项的开关状态true | false falseaggressiveLazyLoading 当启⽤时,对任意延迟属性的调⽤会使带有延迟加载属性的对象完整加载;反之,每种属性将会按需加载。

true | false truemultipleResultSetsEnabled 是否允许单⼀语句返回多结果集(需要兼容驱动)。

true | false trueuseColumnLabel 使⽤列标签代替列名。

不同的驱动在这⽅⾯会有不同的表现,具体可参考相关驱动⽂档或通过测试这两种不同的模式来观察所⽤驱动的结果。

true | false trueuseGeneratedKeys 允许 JDBC ⽀持⾃动⽣成主键,需要驱动兼容。

如果设置为 true 则这个设置强制使⽤⾃动⽣成主键,尽管⼀些驱动不能兼容但仍可正常⼯作(⽐如Derby)。

true | false FalseautoMappingBehavior 指定 MyBatis 应如何⾃动映射列到字段或属性。

NONE表⽰取消⾃动映射;PARTIAL 只会⾃动映射没有定义嵌套结果集映射的结果集。

FULL 会⾃动映射任意复杂的结果集(⽆论是否嵌套)。

NONE, PARTIAL,FULLPARTIALdefaultExecutorType 配置默认的执⾏器。

SIMPLE 就是普通的执⾏器;REUSE 执⾏器会重⽤预处理语句(preparedstatements);BATCH 执⾏器将重⽤语句并执⾏批量更新。

记一次log4j日志文件输出错误的解决

记一次log4j日志文件输出错误的解决

记⼀次log4j⽇志⽂件输出错误的解决log4j错误信息:log4j:ERROR Failed to rename [D:/logs/wmts_] to [D:/logs/wmts_2015-12-21.log ].起因:部门⽹站使⽤B/S架构请求,请求过程中需要将⽇志⽂件记录下来,以便出现问题进⾏查找,刚开始服务器上的⽇志⽂件能够正常输出,后来⽇志⽂件不能输出,部门领导让我查找原因并修改。

介绍:本⼈JAVA⼩⽩⼀枚,之前是学.Net出⾝,来到公司之后由于公司需要才转的JAVA,⽇志输出做的⽐较少所以部门经理刚交给我的时候⼼⾥还是⼩忐忑的。

⽬的:使⽤log4j的DailyRollingFileAppender每天⽣成⼀个⽇志⽂件,并在⽣成的⽇志⽂件之后添加⽇期作为标识,如wmts_2015-12-21.log。

试验期:1、(⼩⽩⼊门)log4j.properties配置如下1 = org.apache.log4j.DailyRollingFileAppender2 .File = ${log4j.log.dir}/wmts_3 .DatePattern = yyyy-MM-dd'.log'4 .Append = false5 .Threshold = INFO6 yout = org.apache.log4j.PatternLayout7 yout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %c:%r ] - [ %p ] %m%n原以为每次请求都会⽣成类似“wmts_2015-12-21.log”的⽂件,后来才知道当天的⽇志会先创建在“wmts_”⽂件中,第⼆天才会以前⼀天的⽇期⽣成⽇志⽂件。

但是经过多次的试验,⼀直没有⽣成正确命名的⽇志⽂件。

2、(C/S尝试)(1)鉴于上⾯的试验⼀直没有成功,本⼈想到可能是本⼈的修炼还不够,⼀上⼿就⽤成型的项⽬可能有些问题不好发现,所以本⼈写了最简单的C/S的Demo来跟踪⽇志的⽣成。

IBatis.net输出SQL语句(七)

IBatis.net输出SQL语句(七)

输出SQL语句(七) 输出⽣成的SQL语句到控制台,能够⽅便调试。

如果要想输出的SQL语句到控制台,那么只需要做如下配置即可:<configSections><!-- 输出执⾏的SQL语句到控制台 --><sectionGroup name="iBATIS"><section name="logging" type="mon.Logging.ConfigurationSectionHandler, mon"/></sectionGroup></configSections><iBATIS><logging><logFactoryAdapter type="mon.Logging.Impl.TraceLoggerFA, mon"><arg key="showLogName" value="true"/><arg key="showDataTime" value="true"/><arg key="level" value="ALL"/><arg key="dateTimeFormat" value="yyyy/MM/dd HH:mm:ss:SSS"/></logFactoryAdapter></logging></iBATIS> 那么显⽰结果如下: 另外,利⽤log4net,能够很轻易地把SQL语句⽣成到⽂件上。

只需做如下配置:<configSections><!-- 输出执⾏的SQL语句 --><sectionGroup name="iBATIS"><section name="logging" type="mon.Logging.ConfigurationSectionHandler, mon"/> </sectionGroup><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/></configSections><iBATIS><logging><logFactoryAdapter type="mon.Logging.Impl.Log4NetLoggerFA, mon.Logging.Log4Net"> <arg key="configType" value="inline"/></logFactoryAdapter></logging></iBATIS><log4net><!-- 定义输出的附加信息,⼤⼩,输出到的⽂件等等 --><appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"><param name="File" value="f:\log.txt"/><param name="AppendToFile" value="true"/><param name="MaxSizeRollBackups" value="2"/><param name="MaximumFileSize" value="100KB"/><param name="RollingStyle" value="Size"/><param name="StaticLogFileName" value="true"/><layout type="yout.PatternLayout"><param name="Header" value="[Header]\r\n"/><param name="Footer" value="[Footer]\r\n"/><param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/></layout></appender><appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"><layout type="yout.PatternLayout"><param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n"/></layout></appender><!-- 设置错误的级别以及附加信息 --><root><level value="DEBUG"/><appender-ref ref="RollingLogFileAppender"/><appender-ref ref="ConsoleAppender"/></root><!-- 只是打印错误信息的级别 --><logger name="IBatisNet.DataMapper.Configuration.Cache.CacheModel"><level value="DEBUG"/></logger><logger name="IBatisNet.DataMapper.Configuration.Statements.PreparedStatementFactory"> <level value="DEBUG"/></logger><logger name="zyLoadList"><level value="DEBUG"/></logger><logger name="IBatisNet.DataAccess.DaoSession"><level value="DEBUG"/></logger><logger name="IBatisNet.DataMapper.SqlMapSession"><level value="DEBUG"/></logger><logger name="mon.Transaction.TransactionScope"><level value="DEBUG"/></logger><logger name="IBatisNet.DataAccess.Configuration.DaoProxy"><level value="DEBUG"/></logger></log4net> 在F盘⽣成⽂件如下:。

【原】配置Log4j,使得MyBatis打印出SQL语句

【原】配置Log4j,使得MyBatis打印出SQL语句

【原】配置Log4j,使得MyBatis打印出SQL语句【环境参数】JDK:jdk1.8.0_25IDE:Eclipse Luna Servie Release 1框架:Spring 4.1.5 + SpringMVC 4.1.5 + MyBatis 3.2.2【配置步骤】⼀、设置MyBatis的Setting(⾮必须,不同环境下,可能不需要该设置)。

在“src/main/java/resources”⽬录下,创建mybatis-config.xml⽂件,并且输⼊下列内容。

1<?xml version="1.0" encoding="UTF-8"?>2<!DOCTYPE configuration3 PUBLIC "-////DTD Config 3.0//EN"4 "/dtd/mybatis-3-config.dtd">5<configuration>6<settings>7<setting name="lazyLoadingEnabled" value="false"/>8<setting name="logImpl" value="LOG4J"/>9</settings>10</configuration>⼆、配置log4j的配置⽂件。

不同的项⽬中,log4j的配置⽂件的格式可能不同,在⼀些项⽬中,log4j的配置⽂件是XML格式的,⽐如log4j.xml;在另⼀些项⽬中,log4j 的配置⽂件是properties格式的,⽐如log4j.properties。

备注:properties格式⽂件的配置⼀般只在⽼的项⽬中存在,新的互联⽹类项⽬,⼀般都是XML格式。

log4j日志不正常,不输出到控制台问题

log4j日志不正常,不输出到控制台问题

log4j⽇志不正常,不输出到控制台问题问题:我的myeclipse 2014由于⼀些原因不打印console⽇志。

解决⽅法:1. 在运⾏的VM的参数⾥⾯增加-Dlog4j.debug 打印出log4j的测试信息。

2. 或者在VM参数⾥⾯强制增加log4j配置⽂件地址: -Dlog4j.configuration=log4j-config_folder/log4j.xml⼀般你应该通过第⼀步找到原因然后根据情况解决如何加参数:1. 如果你是⽤的run/debug右键->run/debug下⾯有⼀个run configurations/debugconfigurations->(x)=Arguments->下⽅有个VMarguments: 把参数加到⾥⾯,选apply和run/debug就可以了。

2. 如果你是⽤的myeclipse,要在Tomcat->Tomcat n.x->JDK->Optional Java VM arguments下增加 -Dlog4j.debug原⽂:/questions/3501355/log4j-output-not-displayed-in-eclipse-consoleFor some reason my Eclipse console no longer displays Log4jINFO and DEBUG statements when I run JUnit tests. In terms ofcode there hasn't been any change, so it must something to dowith the Eclipse configuration.All I do in my Unit test is the following and for some reasonONLY the ERROR statement is displayed in the Eclipseconsole. Why? Where shall I look for clues?public class SampleTest{private static final Logger LOGGER = Logger.getLogger(SampleTest.class);@Beforepublic void init() throws Exception{// Log4J junit configuration.BasicConfigurator.configure();("INFO TEST");LOGGER.debug("DEBUG TEST");LOGGER.error("ERROR TEST");}}Details:log4j-1.2.6.jarjunit-4.6.jar EclipseIDE for Java Developers, Version: Helios Release, Build id:20100617-1415java eclipse junit log4jshare|improve this question edited Aug 17 '10 at10:21leppie68.9k8106203asked Aug 17 '10 at10:11javaExpert1242210add a commentLook in the log4j.properties or log4j.xml file for the log level. It's probably set to ERROR instead ofcommand line with log4j.jar and log4j.properties on your classpath.。

logback不输出日志消息,且SLF4J绑定源错误

logback不输出日志消息,且SLF4J绑定源错误

logback不输出⽇志消息,且SLF4J绑定源错误我之前的项⽬已经成功使⽤过logback作为⽇志输出,但是今天新项⽬在使⽤的时候,不输出⽇志信息。

最后终于找到问题所在,并成功解决。

解决步骤如下:第⼀步:检查pom.xml按照以往惯例,我先检查了pom.xml⽂件,看看logback的引⽤jar是否都存在:<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.1</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.2.1</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.21</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-access</artifactId><version>1.2.1</version></dependency>经检查,jar包是齐全的,⽽且已经成功加载到本地:第⼆步:查看⽇志输出引⽤类是否正确private static final org.slf4j.Logger LOG= org.slf4j.LoggerFactory.getLogger(MyTest.class);("======info");没有发现异常第三步:检查logback.xml只有最简单的控制台输出打印,也⽆异常<?xml version="1.0" encoding="UTF-8"?><configuration scan="false" scanPeriod="3 seconds"><contextName>solr</contextName><property name="log_dir" value="D:\\log\\solr"/><!-- 控制台打印 --><appender name="ConsoleAppender" class="ch.qos.logback.core.ConsoleAppender"><encoder><!-- %logger输出完整类名 %file仅输出类名 --><Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %msg %file:%line%n</Pattern></encoder></appender><!-- 从低到⾼ALL、 TRACE 、 DEBUG 、INFO 、WARN 、ERROR 、OFF 参考ch.qos.logback.classic.Level类 --><root level="INFO">这个root由logger节点替代,因为可以分不同包管理不同的⽇志⽂件<appender-ref ref="ConsoleAppender"/></root></configuration>第四步:检查控制台消息我仔细看了下控制台打印消息,发现SLF4J在警告重复绑定,⽽且实际绑定的并⾮我指定的:SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/D:/root/workspace_bigdata/solr/src/main/webapp/WEB-INF/lib/slf4j-log4j12-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in [jar:file:/D:/root/repository/ch/qos/logback/logback-classic/1.2.1/logback-classic-1.2.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: See /codes.html#multiple_bindings for an explanation.SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]log4j:WARN No appenders could be found for logger (com.solr.SolrTest).log4j:WARN Please initialize the log4j system properly.log4j:WARN See /log4j/1.2/faq.html#noconfig for more info.经排查,我发现在WEB-INF\lib⽬录下和pom.xml中重复导⼊了slf4j-api的jar包,⽽且是不同版本号的,但这实际上并不影响⽇志打印。

解决springmvc整合Mybatis的Log4j日志输出问题

解决springmvc整合Mybatis的Log4j日志输出问题

解决springmvc整合Mybatis的Log4j⽇志输出问题springmvc整合Mybatis的Log4j⽇志输出当我们进⾏web开发的时候总是看到配置的log4j⽇志在控制台⽆法显⽰mybatis的主要是指sql、参数、结果,出现这种问题有两种情况:第⼀种情况下⾯⽂档描述的mybatis本⾝内置很多种⽇志框架使⽤,所以如果我们要⽤具体哪个⽇志框架,就需要进⾏相应mybatis配置,或者就是按照mybatis本⾝规则运⾏。

配置⽅式:新增⽂件,有就直接添加mybatis-config.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-////DTD Config 3.0//EN""/dtd/mybatis-3-config.dtd"><configuration><settings><setting name="logImpl" value="LOG4J"/></settings></configuration>再把这个⽂件添加到:<!--(主库)整合相应的MyBatis持久层相应的插件并注册相应的MyBatis模板 (dataSource1 主库数据源)--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dynamicDataSource" /><property name="configLocation" value="classpath:mybatis-config.xml"></property><!-- 配置mybatis的⽇志记录 --><property name="mapperLocations" value="classpath*:com/belle/finance/**/**/daomapper/mapper/*Mapper.xml"/></bean>这样就配置好了,使⽤log4j进⾏⽇志记录不会运⾏mybatis⾃⾝规则。

Mybatis_09_使用Log4j打印SQL语句

Mybatis_09_使用Log4j打印SQL语句

Mybatis_09_使⽤Log4j打印SQL语句使⽤MyBatis执⾏增删改查之后打印SQL语句* 可以借助⼀个第三⽅的开源组件 log4j 。

* logger for java : 为java语⾔准备的⽇志⼯具,专门负责记录⽇志,很多开源框架都使⽤了该组件。

* log4j配置⽅法- 第⼀步在pom.xml⽂件中引⼊log4j依赖<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>- 第⼆步配置log4j的properties⽂件(放在test-->resourse下)log4j.rootLogger=DEBUG,console,FILElog4j.appender.console=org.apache.log4j.ConsoleAppenderlog4j.appender.console.threshold=INFOyout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%nlog4j.appender.FILE=org.apache.log4j.RollingFileAppenderlog4j.appender.FILE.Append=truelog4j.appender.FILE.File=logs/log4jtest.loglog4j.appender.FILE.Threshold=INFOyout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%nlog4j.appender.FILE.MaxFileSize=10MB- 第三步配置Mybatis核⼼配置⽂件 Mybatis-config.xml<settings><setting name="mapUnderscoreToCamelCase" value="true"/><setting name="logImpl" value="STDOUT_LOGGING"/></settings>。

log4j打印错误日志输出利用sql取出的值放在list集合中,集合中的字段类型为映射类类型

log4j打印错误日志输出利用sql取出的值放在list集合中,集合中的字段类型为映射类类型

log4j打印错误⽇志输出利⽤sql取出的值放在list集合中,集合中的字段类型为映射类类型public ServiceResult<List<KefuDetail>> MaxRespondtime(Date startDate,Date endDate, String saler, String taobaoShopConfId){ServiceResult<List<KefuDetail>> result = new ServiceResult<List<KefuDetail>>();String start = ParameterUtil.formatDatetime(startDate);String end = ParameterUtil.formatDatetime(endDate);List<Object[]> list = dao.getKefuDetailListMaxRespondtime(start, end, saler,taobaoShopConfId);Object[] max_time_item = dao.getMax(start, end, saler,taobaoShopConfId);Integer max = (Integer)max_time_item[0];List<KefuDetail> detailList = new ArrayList<KefuDetail>();//建⽴⼀个映射类型为javabean类型的集合框架detaillistfor (Object[] objs : list){KefuDetail detail = new KefuDetail();//建⽴⼀个javabean,然后对其进⾏操作,最后把整个javabean加⼊到这个list中。

log4j日志不输出的问题

log4j日志不输出的问题

log4j⽇志不输出的问题今天服务器上报错,想先去看⼀下⽇志进⾏排查,结果发现⽇志很久都没有输出过了。

从上午排查到下午,刚刚解决,因此记录⼀下,但现在也只是知其然,并不知其所以然,所以如果⼤家有什么想法请在下⽅评论。

先说⼀下环境,服务器是linux,项⽬是运⾏在tomcat下的Spring项⽬,⽇志⽤的是log4j。

⾸先,从10⽉13号开始便没有新的⽇志⽂件了。

假设⽇志名为log.txt(如果你设置了DailyRollingFileAppender,那么你当天的⽇志⽂件就是log.txt),先备份该⽂件到其他⽬录下,然后删除该⽂件,重新启动tomcat。

这是为了确认你的log4j配置是否有问题,因为这是最容易出错的地⽅。

很遗憾,我不是这⾥出的问题,因为项⽬重启后,⽇志⽂件⼜重新⽣成了,但很奇怪的是,⽇志⽂件是空的,其⼤⼩为0.感觉⾃⼰碰上了很神奇的问题,因此我在⾃⼰的本地进⾏调试,启动项⽬后发现,正常的项⽬启动⽇志是有的:15:13:48:0253 INFO [RMI TCP Connection(3)-127.0.0.1] -Root WebApplicationContext: initialization completed in 18479 ms但我⾃⼰的⼀些⽇志输出是不显⽰的,⽐如:private static final Logger log = LoggerFactory.getLogger(MyDomain.class);("show info log");show info log这句话就不打印,现在证明,我的⽇志配置没有问题,服务器也找到了我的⽇志⽂件,但应该是我⾃⼰的Logger是不对应正确的⽇志输出的,因为我的console(控制台)有显⽰。

接下来,我就是开始看源码了。

先是LoggerFactory.getLogger(Class<?> clazz)⽅法:public static Logger getLogger(Class<?> clazz) {Logger logger = getLogger(clazz.getName());if (DETECT_LOGGER_NAME_MISMATCH) {Class<?> autoComputedCallingClass = Util.getCallingClass();if (autoComputedCallingClass != null && nonMatchingClasses(clazz, autoComputedCallingClass)) {Util.report(String.format("Detected logger name mismatch. Given name: \"%s\"; computed name: \"%s\".", logger.getName(),autoComputedCallingClass.getName()));Util.report("See " + LOGGER_NAME_MISMATCH_URL + " for an explanation");}}return logger;}好吧,没什么⽤,看不出我的logger变成了,继续看getLogger(String name)⽅法:public static Logger getLogger(String name) {ILoggerFactory iLoggerFactory = getILoggerFactory();return iLoggerFactory.getLogger(name);}这时我在return iLoggerFactory.getLogger(name);这⾏打了断点,我看到了这样的东西:为什么我的iLoggerFactory是⽤的logback中的实现?其实也是怪我⾃⼰⼤意,我其实依赖了⼀个基于Spring Boot的项⽬(虽然我只是⽤了⾥⾯的⼀些domain类,但因为设计不当,还没有把这些domain类单独提成⼀个_项⽬),⽽Spring Boot中⼀般默认就依赖的logback。

MyBatisLog插件无法显示SQL语句的原因解析

MyBatisLog插件无法显示SQL语句的原因解析

MyBatisLog插件⽆法显⽰SQL语句的原因解析Mybatis有什么⽤前两天跟阿⾥的⼤⽜聊天,他讲到对于性能要求⾼,需求变化多的互联⽹项⽬来说,⽤在sql优化上的开发时间是⼤头,有时候代码写出来⼀⼩时,优化反反复复可能要⼏个星期,这时候Mybatis这种配置⽐较灵活的框架优势就显现了!Mybatis为什么在国内这么流⾏?1. 什么是Mybatis?MyBatis是⽀持定制化sql、存储过程以及⾼级映射的优秀的持久层框架。

MyBatis避免了⼏乎所有的JDBC代码和⼿⼯设置参数以及抽取结果集。

MyBatis使⽤简单的XML或注解来配置和映射基本体,将接⼝和Java映射成数据库中的记录。

2. Mybatis为什么有优势?l 简单易学:本⾝就很⼩且简单。

没有任何第三⽅依赖,最简单安装只要两个jar⽂件+配置⼏个sql映射⽂件易于学习,易于使⽤,与JDBC相⽐,减少了50%以上的代码量。

l 灵活:Mybatis 不会对应⽤程序或者数据库的现有设计强加任何影响,SQL写在XML⾥,从程序代码中彻底分离,降低耦合度,便于统⼀管理和优化,可重⽤。

l 解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。

sql和代码的分离,提⾼了可维护性。

l 提供映射标签,⽀持对象与数据库的ORM字段关系映射l 提供对象关系映射标签,⽀持对象关系组建维护l 提供XML标签,⽀持编写动态sql。

3. Mybatis为什么在国内这么流⾏?1、历史悠久MyBatis 本是apache的⼀个开源项⽬iBatis, 2010年这个项⽬改名为MyBatis 。

2、阿⾥推动其实⼗年前我们主要使⽤的ORM框架就是iBatis,⽽阿⾥巴巴是对国内Java开发者影响最⼤的⼀家公司。

阿⾥在国内Java社区的影响⼒有⽬共睹,阿⾥对Java社区贡献了很多实⽤的开源⼯具,并且国内Java开发者对于阿⾥开源的产品接纳程度也最⾼。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
log4j.logger.java.sql.Connection =Debug,UrcbDailyRollingFile
log4j.logger.java.sql.Statement =Debug,UrcbDailyRollingFile
#log4j.logger.java.sql.PreparedStatement = Debug ,UrcbDailyRollingFile
WAS上log4j日志不能输出(ibatis)sql语句解决办法
1、问题描述:
村镇银行新信贷系统(东华)CMSII部署在本机TOMCAT服务器下能正常的输出ibatis的sql语句,但部署到测试、生成环境的WAS服务器上就不能输出sql语句。
2、问题描述:
Was有自己默认的LogFactory实现类,而要让was下的应用启用log4j框架下的LogFactory实现类,则需要强制定义。(不同was版本,可能会有略微的差异)
yout.ConversionPattern =%d{yyyy-MM-ddHH:mm:ss}:%m:%c%n###luyp###
.ibatis =Debug,UrcbDailyRollingFile
mon.jdbc.SimpleDataSource =Debug,UrcbDailyRollingFile
log4j.appender.RollingFile=org.apache.log4j.RollingFileAppender
log4j.appender.RollingFile.File =D\:/apache-tomcat-6.0.32/logs/CMSII/CMSII.log
log4j.appender.RollingFile.MaxFileSize =1024KB
#DailyRollingFile(每天产生一个日志文件)
log4j.appender.DailyRollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DailyRollingFile.File=logs/CMSII.log
log4j.logger.java.sql.ResultSet =Debug,UrcbDailyRollingFile
#Forbidden struts2 ClassFinder message
.opensymphony.xwork2.util.finder.ClassFinder=OFF
mons.logging.Log=mons.logging.impl.Log4JLogger
登录was管理控制台
一:建共享库
新建共享库lib,如下图
输入红框中的内容
二:为不同的SERVER指定共享库
点击以下红框的标出的部分
点击新建
选择类装载顺序为图所示,之后点击共享库引用
Cd loglib
拷贝以下3个文件到此目录
1587367 -rw-rw-r-- 1 mgrweb mgrweb 60686 02-25 14:52commons-logging-1.1.1.jar
1587368 -rw-rw-r-- 1 mgrweb mgrweb 174 02-25 14:52commons-logging.properties
yout=org.apache.log4j.PatternLayout
yout.ConversionPattern=%d[%t]%-5p[%c]-%m%n
#RollingFile(产生固定大小的日志文件)
1587369 -rw-rw-r-- 1 mgrweb mgrweb 352668 02-25 14:52log4j-1.2.8.jar
其中commons-logging.properties文件的内容为
---------------
priority=1
mons.logging.LogFactory=mons.logging.impl.LogFactoryImpl
log4j.appender.RollingFile.MaxBackupIndex =300
yout=org.apache.log4j.PatternLayout
yout.ConversionPattern =%d{yyyy-MM-ddHH:mm:ss}:%m:%c%n###luyp###
文件内容为
mons.logging.LogFactory=
mons.logging.impl.LogFactoryImpl
4.2办法二:单个server级别的修改(以信贷系统为例)
Cd/home/mgrweb/was/dhcms/
Mkdir loglib
mon.jdbc.ScriptRunner =Debug,UrcbDailyRollingFile
.ibatis.sqlmap.engine.impl.SqlMapClientDelegate =Debug,UrcbDailyRollingFile
点击添加,选择之前建的共享库“loglib”,然后点击确定。
此次,was设置完成。
5、Log4j.properties文件配置:
# Output pattern : date [thread] priority category - message
log4j.rootLogger=info,Console,UrcbDailyRollingFile
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
yout=org.apache.log4j.PatternLayout
yout.ConversionPattern=%d[%t]%-5p[%c]-%m%n
#UrcbDailyRollingFile(联合银行重写的日志输出方式)
log4j.appender.UrcbDailyRollingFile=com.urcb.tools.RollingDateFileAppender
log4j.appender.UrcbDailyRollingFile.File =D\:/apache-tomcat-6.0.32/logs/CMSII/CMSII.log
3、WAS版本信息:
集成解决方案控制台,7.0.0.23
构建号:cf231218:
4.1办法一:整个was级别的修改
在was的安装目录下/home/mgrweb/pro/app/properties/
新建一个名为commons-logging.porperties的文件。
log4j.appender.UrcbDailyRollingFile.MaxFileSize =1024KB
log4j.appender.UrcbDailyRollingFile.MaxBackupIndex =300
yout=org.apache.log4j.PatternLayout
相关文档
最新文档