Class Stats

java.lang.Object
com.sun.identity.shared.stats.Stats
All Implemented Interfaces:
ShutdownListener

@SupportedAll public class Stats extends Object implements ShutdownListener

Allows a uniform interface to statistics information in a uniform format. Stats supports different states of filing stats information: OFF, FILE and CONSOLE.

  • OFF statistics is turned off.
  • FILE statistics information is written to a file
  • CONSOLE statistics information is written on console

Stats service uses the property file, AMConfig.properties, to set the default stats level and the output directory where the stats files will be placed. The properties file is located (using ResourceBundle semantics) from one of the directories in the CLASSPATH.

The following keys are used to configure the Stats service. Possible values for the key 'state' are: off | off | file | console The key 'directory' specifies the output directory where the stats files will be created.

  com.iplanet.services.stats.state
  com.iplanet.services.stats.directory
 
If there is an error reading or loading the properties, all the information is redirected to System.out If these properties are changed, the server must be restarted for the changes to take effect.

NOTE: Printing Statistics is an IO intensive operation and may hurt application performance when abused. Particularly, note that Java evaluates the arguments to message() and warning() even when statistics is turned off. It is recommended that the stats state be checked before invoking any message() or warning() methods to avoid unnecessary argument evaluation and to maximize application performance.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Flags the state where printing to a file is disabled.
    static final int
    Flags the state where all the statistic information is printed to a file
    static final int
    flags the disabled stats state.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addStatsListener(com.sun.identity.shared.stats.StatsListener listener)
     
    void
    Destroys the stats object, closes the stats file and releases any system resources.
    protected void
    Flushes and then closes the stats file.
    static Stats
    getInstance(String statsName)
    Returns an existing instance of Stats for the specified stats file or a new one if no such instance already exists.
    int
    Returns one of the 3 possible values.
    boolean
    Checks if statistics is enabled.
    void
    Prints messages only when the stats state is either Stats.FILE or Stats.CONSOLE.
    void
    setStats(int statsType)
    Sets the stats capabilities based on the values of the statsType argument.
    void
    setStats(String statsType)
    Sets the stats capabilities based on the values of the statsType argument.
    void
    The function to run when the system shutdown.

    Methods inherited from class java.lang.Object

    clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • OFF

      public static final int OFF
      flags the disabled stats state.
      See Also:
    • FILE

      public static final int FILE
      Flags the state where all the statistic information is printed to a file
      See Also:
    • CONSOLE

      public static final int CONSOLE
      Flags the state where printing to a file is disabled. All printing is done on System.out.
      See Also:
  • Method Details

    • getInstance

      public static Stats getInstance(String statsName)
      Returns an existing instance of Stats for the specified stats file or a new one if no such instance already exists. If a Stats object has to be created, its level is set to the level defined in the AMConfig.properties file. The level can be changed later by using setStats(int) or setStats(String)
      Parameters:
      statsName - name of statistic instance.
      Returns:
      an existing instance of Stats for the specified stats file.
    • isEnabled

      public boolean isEnabled()
      Checks if statistics is enabled.

      NOTE: It is recommended that isEnabled() be used instead of isEnabled() as the former is more intuitive.

      Returns:
      true if statistics is enabled false if statistics is disabled
    • getState

      public int getState()
      Returns one of the 3 possible values.
      • Stats.OFF
      • Stats.FILE
      • Stats.CONSOLE
      Returns:
      state of Stats.
    • record

      public void record(String msg)
      Prints messages only when the stats state is either Stats.FILE or Stats.CONSOLE.

      NOTE: Printing Statistics is an IO intensive operation and may hurt application performance when abused. Particularly, note that Java evaluates arguments to message() even when statistics is turned off. So when the argument to this method involves the String concatenation operator '+' or any other method invocation, isEnabled MUST be used. It is recommended that the stats state be checked by invoking isEnabled() before invoking any message() methods to avoid unnecessary argument evaluation and maximize application performance.

      Parameters:
      msg - message to be recorded.
    • setStats

      public void setStats(int statsType)
      Sets the stats capabilities based on the values of the statsType argument.
      Parameters:
      statsType - is any one of five possible values:
      • Stats.OFF
      • Stats.FILE
      • Stats.CONSOLE
    • setStats

      public void setStats(String statsType)
      Sets the stats capabilities based on the values of the statsType argument.
      Parameters:
      statsType - is any one of the following possible values:

      off - statistics is disabled

      file - statistics are written to the stats file System.out

      console - statistics are written to the stats to the console

    • destroy

      public void destroy()
      Destroys the stats object, closes the stats file and releases any system resources. Note that the stats file will remain open until destroy() is invoked. To conserve file resources, you should invoke destroy() explicitly rather than wait for the garbage collector to clean up.

      If this object is accessed after destroy() has been invoked, the results are undefined.

    • shutdown

      public void shutdown()
      Description copied from interface: ShutdownListener
      The function to run when the system shutdown.
      Specified by:
      shutdown in interface ShutdownListener
    • finalize

      protected void finalize()
      Flushes and then closes the stats file.
      Overrides:
      finalize in class Object
    • addStatsListener

      public void addStatsListener(com.sun.identity.shared.stats.StatsListener listener)