log4j对象改变日志级别

 

log4j对象改变日志级别可批量的改变所有级别,或是根据条件改变日志级别。 

log4j配置文件: 

Xml代码   收藏代码
  1. log4j.rootLogger=ERROR,FILE,CONSOLE,EXECPTION  
  2.    
  3. #log4j.appender.FILE=org.apache.log4j.RollingFileAppender  
  4. log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender  
  5. log4j.appender.FILE.File=${catalina.home}/logs/boss.log  
  6. log4j.appender.CONSOLE.Threshold=DEBUG  
  7. log4j.appender.FILE.Encoding=utf-8  
  8. #log4j.appender.FILE.MaxFileSize=10MB  
  9. #log4j.appender.FILE.MaxBackupIndex=100  
  10. log4j.appender.FILE.layout=org.apache.log4j.PatternLayout  
  11. log4j.appender.FILE.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss,SSS}][%t][%l][%p]: %m%n  
  12.   
  13. log4j.appender.EXECPTION=org.apache.log4j.DailyRollingFileAppender  
  14. log4j.appender.EXECPTION.File=${catalina.home}/logs/error.log  
  15. log4j.appender.EXECPTION.Threshold=ERROR  
  16. log4j.appender.EXECPTION.Encoding=utf-8  
  17. #log4j.appender.EXECPTION.MaxFileSize=10MB  
  18. #log4j.appender.EXECPTION.MaxBackupIndex=100  
  19. log4j.appender.EXECPTION.layout=org.apache.log4j.PatternLayout  
  20. log4j.appender.EXECPTION.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss,SSS}][%t][%l][%p]: %m%n  
  21.   
  22. log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender  
  23. log4j.appender.CONSOLE.Target=System.out  
  24. log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout  
  25. log4j.appender.CONSOLE.layout.ConversionPattern=[%d{HH:mm:ss,SSS}][%-5p][%t][%M] (%F:%L) - %m%n  
  26.   
  27. log4j.appender.Requests=org.apache.log4j.RollingFileAppender  
  28. log4j.appender.Requests.File=${catalina.home}/logs/jotm.log  
  29. log4j.appender.Requests.MaxFileSize=100MB  
  30. log4j.appender.Requests.MaxBackupIndex=5  
  31. log4j.appender.Requests.Encoding=utf-8  
  32. log4j.appender.Requests.layout=org.apache.log4j.PatternLayout  
  33. log4j.appender.Requests.layout.ConversionPattern=%10r [%-5c{1}] %7p - %C{1}.%M(%L) : %m\n  
  34.   
  35. #c3p0  
  36. log4j.logger.com.mchange.v2=ERROR  
  37. log4j.logger.com.opensymphony=ERROR  
  38. log4j.logger.org.apache=ERROR  
  39. log4j.logger.org.springframework=ERROR  
  40. log4j.logger.freemarker.cache=ERROR  
  41.   
  42. #SqlMap logging configuration...  
  43. #DEBUG < INFO < WARN < ERROR < FATAL#  
  44. log4j.logger.com.miri.boss=DEBUG  
  45.   
  46. log4j.logger.com.ibatis=ERROR  
  47. log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=ERROR  
  48. log4j.logger.com.ibatis.common.jdbc.ScriptRunner=ERROR  
  49. log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=ERROR  
  50.   
  51. #log4j.logger.java.sql=INFO  
  52. log4j.logger.java.sql.Statement=ERROR  
  53. log4j.logger.java.sql.ResultSet=ERROR  
  54. log4j.logger.java.sql.PreparedStatement=ERROR  
  55.   
  56. #json  
  57. log4j.org.apache.struts2=ERROR  
  58. log4j.logger.org.apache.struts2.json=ERROR  
  59.   
  60. #ecside  
  61. log4j.logger.org.ecside.core.TableModelUtils=ERROR  
  62.   
  63. # JOTM #  
  64. log4j.logger.org.objectweb.jotm=ERROR, Requests  
  65. log4j.additivity.org.objectweb.jotm=false  
  66.   
  67. log4j.logger.org.objectweb.jotm.jta=ERROR, Requests  
  68. log4j.additivity.org.objectweb.jotm.jta=false  
  69.   
  70. log4j.logger.org.objectweb.jotm.recovery=ERROR, Requests  
  71. log4j.additivity.org.objectweb.jotm.recovery=false  
  72.   
  73. log4j.logger.org.objectweb.jotm.tests=ERROR, Requests  
  74. log4j.additivity.org.objectweb.jotm.tests=false  
  75.   
  76. # CAROL #  
  77. log4j.logger.org.objectweb.carol=ERROR, Requests  
  78. log4j.additivity.org.objectweb.carol=false  
  79.   
  80. log4j.logger.org.objectweb.carol.rmi=ERROR, Requests  
  81. log4j.additivity.org.objectweb.carol.rmi=false  
  82.   
  83. log4j.logger.org.objectweb.carol.jndi=ERROR, Requests  
  84. log4j.additivity.org.objectweb.carol.jndi=false  


1、批量的改变所有日志对象的日志级别: 

Java代码   收藏代码
  1. //value日志级别eroor、info、debug等  
  2. public void test(String value){  
  3. final String sArg = LogManager.getRootLogger().getLevel().toString();  
  4.                     if (!sArg.equals(value))  
  5.                     {  
  6. //设置日志级别  
  7.                         final Level level = Level.toLevel(value);  
  8. //设置根日志级别  
  9.                         LogManager.getRootLogger().setLevel(level);  
  10.   
  11. //获取配置文件中的所有log4j对象  
  12.                         final Enumeration<org.apache.log4j.Logger> logs = LogManager.getCurrentLoggers();  
  13.                         while (logs.hasMoreElements())  
  14.                         {  
  15.                             final org.apache.log4j.Logger logger = logs.nextElement();  
  16. //给log4j对象设置级别    
  17.                             logger.setLevel(level);  
  18.                         }  
  19.                     }  
  20. }  


2、根据log4j对象的名称改变日志级别,名称将会和配置文件中的名称匹配,匹配上的对象设置日志级别。 

Java代码   收藏代码
  1. //value日志级别eroor、info、debug等  
  2. public void test(String value){  
  3.   
  4. final String sArg = LogManager.getRootLogger().getLevel().toString();  
  5.                     if (!sArg.equals(value))  
  6.                     {  
  7.                         final Level level = Level.toLevel(value);  
  8.                         LogManager.getRootLogger().setLevel(level);  
  9.                         final Enumeration<org.apache.log4j.Logger> logs = LogManager.getCurrentLoggers();  
  10.                         while (logs.hasMoreElements())  
  11.                         {  
  12.                             final org.apache.log4j.Logger logger = logs.nextElement();  
  13.                             final String loggerName = logger.getName();  
  14.                             // 匹配调整部分logger  
  15.                             if (loggerName.contains("java.sql") || loggerName.contains("com.miri.boss")  
  16.                                     || loggerName.contains("com.ibatis"))  
  17.                             {  
  18.                                 logger.setLevel(level);  
  19.                             }  
  20.                         }  
  21.                     }  
  22. }  


上面的匹配条件将会匹配到日志配置文件中的: 

Xml代码   收藏代码
  1. log4j.logger.com.miri.boss=DEBUG  
  2.   
  3. log4j.logger.com.ibatis=ERROR  
  4. log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=ERROR  
  5. log4j.logger.com.ibatis.common.jdbc.ScriptRunner=ERROR  
  6. log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=ERROR  
  7.   
  8. #log4j.logger.java.sql=INFO  
  9. log4j.logger.java.sql.Statement=ERROR  
  10. log4j.logger.java.sql.ResultSet=ERROR  
  11. log4j.logger.java.sql.PreparedStatement=ERROR  

猜你喜欢

转载自a52071453.iteye.com/blog/2227168