log4j的tips

似乎在appender里面不能直接调用另外的logger,会丢nullpointer,待验证。
log4j自身提供fallback errorhandler,直接实现
 1  package  org.apache.log4j.spi;
 2  import  org.apache.log4j.Appender;
 3  import  org.apache.log4j.Logger;
 4  public   interface  ErrorHandler  extends  OptionHandler {
 5  void  setLogger(Logger logger);
 6  void  error(String message, Exception e,  int  errorCode);
 7  void  error(String message);
 8  void  error(String message, Exception e,  int  errorCode,
 9  LoggingEvent event);
10  void  setAppender(Appender appender);
11  void  setBackupAppender(Appender appender);
12  }

不巧的是,我正好不能用,我是需要用来处理一个url数组,要把数据publish到每一个url去,每一个出现exception都不应该影响到下一个的处理,貌似实现ErrorHandler 没办法做到,我的临时处理办法是把publish单独抽出来写到另外一个类里面,这样就可以访问别的logger了。

有空跟踪一下,现在观点保留:
1.  Appdender的生命周期,貌似归log4j的logger容器管理,不会每次创建,现在我怀疑是logger容器只是创建一次实例
2.


  1  # To turn more verbose logging on  -  change  " ERROR "  to  " WARN "  or  " DEBUG "
  2 
  3  #log4j.rootCategory = DEBUG, console
  4  log4j.rootCategory = WARN, console, errorlog
  5 
  6  log4j.appender.console = org.apache.log4j.ConsoleAppender
  7  log4j.appender.console.Threshold = DEBUG
  8  log4j.appender.console.layout = org.apache.log4j.PatternLayout
  9  log4j.appender.console.layout.ConversionPattern =% % p [ % c{ 4 }]  % m % n
 10 
 11  ###
 12  # INFO logging  for  startup event
 13  ###
 14  log4j.logger.com.atlassian.confluence.lifecycle = INFO, console
 15  log4j.additivity.com.atlassian.confluence.lifecycle = false
 16 
 17  ###
 18  # INFO logging  for  upgrade tasks.
 19  ###
 20  log4j.logger.com.atlassian.confluence.upgrade = INFO, console
 21  log4j.additivity.com.atlassian.confluence.upgrade = false
 22 
 23  ###
 24  # THREAD LOCAL ERROR LOG APPENDER
 25  ###
 26  log4j.appender.errorlog = com.atlassian.core.logging.ThreadLocalErrorLogAppender
 27  log4j.appender.errorlog.Threshold = WARN
 28 
 29  #log4j.logger.velocity = DEBUG, console
 30  #log4j.additivity.velocity = false
 31 
 32  ## mail removal debugging
 33  log4j.logger.com.atlassian.confluence.mail.actions = INFO, console
 34 
 35  # suppress WARN log statements from the ReadWriteCache  class  (CONF - 2517 )
 36  log4j.logger.net.sf.hibernate.cache.ReadWriteCache = ERROR, console
 37 
 38  #####################
 39  # Hibernate logging #
 40  #####################
 41 
 42  # suppress JDBCExceptionReporter warnings (there can be a few of these under DB2)
 43  log4j.logger.net.sf.hibernate.util.JDBCExceptionReporter = ERROR, console
 44 
 45  # suppress warnings from the SessionImpl (like Narrowing proxy to  class  com.atlassian.confluence.pages.Page  -   this  operation breaks  == )
 46  log4j.logger.net.sf.hibernate.impl.SessionImpl = ERROR, console
 47 
 48  # suppress PDF export logs to errors only
 49  log4j.logger.com.atlassian.confluence.importexport.impl.PdfExporter = ERROR, console
 50 
 51  # suppress FileUtils (file management) warnings
 52  log4j.logger.bucket.util.FileUtils = ERROR, console
 53 
 54  #log4j.logger.com.atlassian.confluence.search.UnindexingHibernateInterceptor = DEBUG, console
 55  #log4j.additivity.com.atlassian.confluence.search.UnindexingHibernateInterceptor = false
 56 
 57  ### useful confluence classes
 58  #log4j.logger.com.atlassian.confluence = INFO, console
 59  #log4j.additivity.com.atlassian.confluence = false
 60  #log4j.logger.com.atlassian.confluence.setup = DEBUG, console
 61  #log4j.logger.com.atlassian.confluence.setup.actions = DEBUG, console
 62  #log4j.logger.com.atlassian.confluence.util = DEBUG, console
 63 
 64  ### show progress building of ANCESTOR table
 65  #log4j.logger.com.atlassian.confluence.util.AncestorTableBuilder = INFO, console
 66 
 67  ### hibernate
 68  #log4j.logger.net.sf.hibernate = DEBUG, console
 69  #log4j.additivity.net.sf.hibernate = false
 70 
 71  ### ehcache
 72  #log4j.logger.net.sf.ehcache = DEBUG, console
 73  #log4j.additivity.net.sf.ehcache = false
 74 
 75  ### log JDBC bind parameters ###
 76  # log4j.logger.net.sf.hibernate.type = DEBUG
 77 
 78  ### hibernate caching activity
 79  #log4j.logger.net.sf.hibernate.cache = DEBUG
 80 
 81  ### log prepared statement cache activity ###
 82  #log4j.logger.net.sf.hibernate.ps.PreparedStatementCache = DEBUG
 83 
 84  ### opensymphony (sitemesh, webwork, xwork)
 85  #log4j.logger.com.opensymphony = DEBUG, console
 86 
 87  ### Spring
 88  # log4j.logger.org.springframework = WARN, console
 89  # log4j.logger.springframework.transaction.support.TransactionSynchronizationManager = DEBUG
 90  # com.atlassian.confluence.setup.spring.SpringSessionInViewFilter = DEBUG
 91  # log4j.additivity.org.springframework = true
 92 
 93  ### Apache stuff
 94  # log4j.logger.org.apache = WARN, console
 95  # log4j.additivity.org.apache = false
 96 
 97  ### WIKI Engine
 98  #log4j.logger.com.atlassian.confluence.importexport = WARN, console
 99  #log4j.logger.com.atlassian.confluence.renderer = WARN, console
100 
101 
102 
103  ####
104  # PROFILING LOG APPENDER
105  ###
106  #log4j.appender.profiling = com.atlassian.confluence.util.profiling.ProfilingLogAppender
107  #log4j.appender.profiling.Threshold = DEBUG
108  #log4j.appender.profiling.layout = org.apache.log4j.PatternLayout
109  #log4j.appender.profiling.layout.ConversionPattern =% % p [ % c{ 4 }]  % m % n
110 
111  ## profiling debugging
112  #log4j.logger.net.sf.hibernate.cache.ReadWriteCache = DEBUG, profiling
113  #log4j.logger.com.atlassian.confluence.setup.spring.SpringSessionInViewFilter = DEBUG, profiling
114  #log4j.logger.com.atlassian.confluence.util = DEBUG, profiling
115  #log4j.logger.org.springframework.orm.hibernate.HibernateTransactionManager = DEBUG, profiling
116  #log4j.logger.com.opensymphony.oscache.web.filter = DEBUG, profiling
117  #log4j.logger.net.sf.ehcache.store.MemoryStore = DEBUG, profiling
118  #log4j.logger.net.sf.hibernate.ps.PreparedStatementCache = DEBUG, profiling
119  #log4j.logger.net.sf.hibernate.type = DEBUG, profiling

转载于:https://www.cnblogs.com/kapok/archive/2005/11/15/276617.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值