PageRenderTime 45ms CodeModel.GetById 23ms RepoModel.GetById 1ms app.codeStats 0ms

/logback-classic/src/main/java/ch/qos/logback/classic/joran/JoranConfigurator.java

https://github.com/hmalphettes/logback
Java | 91 lines | 56 code | 13 blank | 22 comment | 1 complexity | bb3dd291efe6ef60e137c1aa0b19fe3e MD5 | raw file
  1. /**
  2. * Logback: the reliable, generic, fast and flexible logging framework.
  3. * Copyright (C) 1999-2009, QOS.ch. All rights reserved.
  4. *
  5. * This program and the accompanying materials are dual-licensed under
  6. * either the terms of the Eclipse Public License v1.0 as published by
  7. * the Eclipse Foundation
  8. *
  9. * or (per the licensee's choosing)
  10. *
  11. * under the terms of the GNU Lesser General Public License version 2.1
  12. * as published by the Free Software Foundation.
  13. */
  14. package ch.qos.logback.classic.joran;
  15. import ch.qos.logback.classic.joran.action.ConfigurationAction;
  16. import ch.qos.logback.classic.joran.action.ConsolePluginAction;
  17. import ch.qos.logback.classic.joran.action.ContextNameAction;
  18. import ch.qos.logback.classic.joran.action.EvaluatorAction;
  19. import ch.qos.logback.classic.joran.action.InsertFromJNDIAction;
  20. import ch.qos.logback.classic.joran.action.JMXConfiguratorAction;
  21. import ch.qos.logback.classic.joran.action.LevelAction;
  22. import ch.qos.logback.classic.joran.action.LoggerAction;
  23. import ch.qos.logback.classic.joran.action.RootLoggerAction;
  24. import ch.qos.logback.classic.sift.SiftAction;
  25. import ch.qos.logback.classic.spi.PlatformInfo;
  26. import ch.qos.logback.classic.util.DefaultNestedComponentRules;
  27. import ch.qos.logback.core.joran.JoranConfiguratorBase;
  28. import ch.qos.logback.core.joran.action.AppenderRefAction;
  29. import ch.qos.logback.core.joran.action.IncludeAction;
  30. import ch.qos.logback.core.joran.action.NOPAction;
  31. import ch.qos.logback.core.joran.spi.DefaultNestedComponentRegistry;
  32. import ch.qos.logback.core.joran.spi.Pattern;
  33. import ch.qos.logback.core.joran.spi.RuleStore;
  34. /**
  35. * This JoranConfiguratorclass adds rules specific to logback-classic.
  36. *
  37. * @author Ceki Gülcü
  38. */
  39. public class JoranConfigurator extends JoranConfiguratorBase {
  40. public JoranConfigurator() {
  41. }
  42. @Override
  43. public void addInstanceRules(RuleStore rs) {
  44. // parent rules already added
  45. super.addInstanceRules(rs);
  46. rs.addRule(new Pattern("configuration"), new ConfigurationAction());
  47. rs.addRule(new Pattern("configuration/contextName"),
  48. new ContextNameAction());
  49. rs.addRule(new Pattern("configuration/insertFromJNDI"),
  50. new InsertFromJNDIAction());
  51. rs.addRule(new Pattern("configuration/evaluator"), new EvaluatorAction());
  52. rs.addRule(new Pattern("configuration/appender/sift"), new SiftAction());
  53. rs.addRule(new Pattern("configuration/appender/sift/*"), new NOPAction());
  54. rs.addRule(new Pattern("configuration/logger"), new LoggerAction());
  55. rs.addRule(new Pattern("configuration/logger/level"), new LevelAction());
  56. rs.addRule(new Pattern("configuration/root"), new RootLoggerAction());
  57. rs.addRule(new Pattern("configuration/root/level"), new LevelAction());
  58. rs.addRule(new Pattern("configuration/logger/appender-ref"),
  59. new AppenderRefAction());
  60. rs.addRule(new Pattern("configuration/root/appender-ref"),
  61. new AppenderRefAction());
  62. // add jmxConfigurator only if we have JMX available.
  63. // If running under JDK 1.4 (retrotranslateed logback) then we
  64. // might not have JMX.
  65. if (PlatformInfo.hasJMXObjectName()) {
  66. rs.addRule(new Pattern("configuration/jmxConfigurator"),
  67. new JMXConfiguratorAction());
  68. }
  69. rs.addRule(new Pattern("configuration/include"), new IncludeAction());
  70. rs.addRule(new Pattern("configuration/consolePlugin"),
  71. new ConsolePluginAction());
  72. }
  73. @Override
  74. protected void addDefaultNestedComponentRegistryRules(
  75. DefaultNestedComponentRegistry registry) {
  76. DefaultNestedComponentRules.addDefaultNestedComponentRegistryRules(registry);
  77. }
  78. }