View Javadoc

1   //
2   //  ========================================================================
3   //  Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
4   //  ------------------------------------------------------------------------
5   //  All rights reserved. This program and the accompanying materials
6   //  are made available under the terms of the Eclipse Public License v1.0
7   //  and Apache License v2.0 which accompanies this distribution.
8   //
9   //      The Eclipse Public License is available at
10  //      http://www.eclipse.org/legal/epl-v10.html
11  //
12  //      The Apache License v2.0 is available at
13  //      http://www.opensource.org/licenses/apache2.0.php
14  //
15  //  You may elect to redistribute this code under either of these licenses.
16  //  ========================================================================
17  //
18  
19  
20  package org.eclipse.jetty.monitor.jmx;
21  
22  import org.eclipse.jetty.util.log.Log;
23  import org.eclipse.jetty.util.log.Logger;
24  
25  
26  /* ------------------------------------------------------------ */
27  /**
28   * ConsoleNotifier
29   * 
30   * Provides a way to output notification messages to a log file
31   */
32  public class LoggingNotifier implements EventNotifier
33  {
34      private static final Logger LOG = Log.getLogger(LoggingNotifier.class);
35  
36      String _messageFormat;
37  
38      /* ------------------------------------------------------------ */
39      /**
40       * Constructs a new notifier with specified format string
41       * 
42       * @param format the {@link java.util.Formatter format string}
43       * @throws IllegalArgumentException if format is invalid
44       */
45      public LoggingNotifier(String format)
46          throws IllegalArgumentException
47      {
48          if (format == null)
49              throw new IllegalArgumentException("Message format cannot be null");
50          
51          _messageFormat = format;
52      }
53      
54      /* ------------------------------------------------------------ */
55      /**
56       * @see org.eclipse.jetty.monitor.jmx.EventNotifier#notify(org.eclipse.jetty.monitor.jmx.EventTrigger, org.eclipse.jetty.monitor.jmx.EventState, long)
57       */
58      public void notify(EventTrigger trigger, EventState<?> state, long timestamp)
59      {
60          String output = String.format(_messageFormat, state);
61          
62          LOG.info(output);
63      }
64  
65  }