You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Jdk14Trace.java 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. /*******************************************************************************
  2. * Copyright (c) 2006 IBM Corporation and others.
  3. * All rights reserved. This program and the accompanying materials
  4. * are made available under the terms of the Eclipse Public License v1.0
  5. * which accompanies this distribution, and is available at
  6. * http://www.eclipse.org/legal/epl-v10.html
  7. *
  8. * Contributors:
  9. * Matthew Webster - initial implementation
  10. *******************************************************************************/
  11. package org.aspectj.weaver.tools;
  12. import java.util.logging.Handler;
  13. import java.util.logging.Level;
  14. import java.util.logging.Logger;
  15. // OPTIMIZE move out for now? check what doc says about using these variants on trace (commons/14)
  16. public class Jdk14Trace extends AbstractTrace {
  17. private Logger logger;
  18. private String name;
  19. public Jdk14Trace (Class clazz) {
  20. super(clazz);
  21. this.name = clazz.getName();
  22. this.logger = Logger.getLogger(name);
  23. }
  24. public void enter(String methodName, Object thiz, Object[] args) {
  25. if (logger.isLoggable(Level.FINE)) {
  26. logger.entering(name,methodName,formatObj(thiz));
  27. if (args != null && logger.isLoggable(Level.FINER)) {
  28. logger.entering(name,methodName,formatObjects(args));
  29. }
  30. }
  31. }
  32. public void enter(String methodName, Object thiz) {
  33. enter(methodName,thiz,null);
  34. }
  35. public void exit(String methodName, Object ret) {
  36. if (logger.isLoggable(Level.FINE)) {
  37. logger.exiting(name,methodName,formatObj(ret));
  38. }
  39. }
  40. public void exit(String methodName, Throwable th) {
  41. if (logger.isLoggable(Level.FINE)) {
  42. logger.exiting(name,methodName,th);
  43. }
  44. }
  45. public void exit(String methodName) {
  46. if (logger.isLoggable(Level.FINE)) {
  47. logger.exiting(name,methodName);
  48. }
  49. }
  50. public void event(String methodName, Object thiz, Object[] args) {
  51. if (logger.isLoggable(Level.FINE)) {
  52. logger.logp(Level.FINER,name,methodName,"EVENT",formatObj(thiz));
  53. if (args != null && logger.isLoggable(Level.FINER)) {
  54. logger.logp(Level.FINER,name,methodName,"EVENT",formatObjects(args));
  55. }
  56. }
  57. }
  58. public void event(String methodName) {
  59. if (logger.isLoggable(Level.FINE)) {
  60. logger.logp(Level.FINER,name,methodName,"EVENT");
  61. }
  62. }
  63. public boolean isTraceEnabled() {
  64. return logger.isLoggable(Level.FINER);
  65. }
  66. public void setTraceEnabled (boolean b) {
  67. if (b) {
  68. logger.setLevel(Level.FINER);
  69. Handler[] handlers = logger.getHandlers();
  70. if (handlers.length == 0) {
  71. Logger parent = logger.getParent();
  72. if (parent != null) handlers = parent.getHandlers();
  73. }
  74. for (int i = 0; i < handlers.length; i++) {
  75. Handler handler = handlers[i];
  76. handler.setLevel(Level.FINER);
  77. }
  78. }
  79. else {
  80. logger.setLevel(Level.INFO);
  81. }
  82. }
  83. public void debug (String message) {
  84. if (logger.isLoggable(Level.FINE)) {
  85. logger.fine(message);
  86. }
  87. }
  88. public void info(String message) {
  89. if (logger.isLoggable(Level.INFO)) {
  90. logger.info(message);
  91. }
  92. }
  93. public void warn (String message, Throwable th) {
  94. if (logger.isLoggable(Level.WARNING)) {
  95. logger.log(Level.WARNING,message,th);
  96. }
  97. }
  98. public void error (String message, Throwable th) {
  99. if (logger.isLoggable(Level.SEVERE)) {
  100. logger.log(Level.SEVERE,message,th);
  101. }
  102. }
  103. public void fatal (String message, Throwable th) {
  104. if (logger.isLoggable(Level.SEVERE)) {
  105. logger.log(Level.SEVERE,message,th);
  106. }
  107. }
  108. }