ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/util/uk/org/iscream/cms/util/FormatName.java
(Generate patch)

Comparing projects/cms/source/util/uk/org/iscream/cms/util/FormatName.java (file contents):
Revision 1.3 by ajm, Tue Dec 12 18:24:00 2000 UTC vs.
Revision 1.14 by tdb, Tue May 21 16:47:19 2002 UTC

# Line 1 | Line 1
1 + /*
2 + * i-scream central monitoring system
3 + * http://www.i-scream.org.uk
4 + * Copyright (C) 2000-2002 i-scream
5 + *
6 + * This program is free software; you can redistribute it and/or
7 + * modify it under the terms of the GNU General Public License
8 + * as published by the Free Software Foundation; either version 2
9 + * of the License, or (at your option) any later version.
10 + *
11 + * This program is distributed in the hope that it will be useful,
12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 + * GNU General Public License for more details.
15 + *
16 + * You should have received a copy of the GNU General Public License
17 + * along with this program; if not, write to the Free Software
18 + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19 + */
20 +
21   //---PACKAGE DECLARATION---
22 < package uk.ac.ukc.iscream.util;
22 > package uk.org.iscream.cms.server.util;
23  
24   //---IMPORTS---
25 + import java.util.Date;
26 + import java.text.DateFormat;
27 + import java.util.Locale;
28  
29   /**
30   * This class provides static methods to format the
# Line 16 | Line 39 | public class FormatName {
39  
40   //---FINAL ATTRIBUTES---
41    
42 +    /**
43 +     * An array of names of verbosity levels.
44 +     * Thus logging messages are now "classed" by the level
45 +     */
46 +    private final static String[] VERBOSITY_NAMES = {"FATAL  ", "ERROR  ", "WARNING", "SYSMSG ", "SYSINIT", "DEBUG  "};
47 +  
48   //---STATIC METHODS---
49  
50      /**
# Line 24 | Line 53 | public class FormatName {
53       * This is of use to the override of the toString() as
54       * implemented by most of the iscream objects.
55       *
27     * It has support for null friendly name and null class name
28     * bit NOT both at the same time.
29     *
56       * @param friendlyName the configured name of the instance of the calling component the class is in (eg "filter1")
57       * @param className the class name of the calling class, as obtained by getClass().getName()
58       * @param revision the CVS Revision number for the calling class
# Line 34 | Line 60 | public class FormatName {
60       * @return an iscream standard name to be used as a toString()
61       */
62      public static String getName(String friendlyName, String className, String revision) {
63 <        if (friendlyName == null) {
64 <            return  "{"+ className + "(v" + revision.substring(11, revision.length() - 2) + ")}";
63 >        if (friendlyName == null && className == null) {
64 >            return "{static(v" + revision.substring(11, revision.length() - 2) + ")}";
65 >        } else if (friendlyName == null) {
66 >            return  "{"+ tidyClassName(className) + "(v" + revision.substring(11, revision.length() - 2) + ")}";
67          } else if (className == null) {
68              return friendlyName + "{static(v" + revision.substring(11, revision.length() - 2) + ")}";
69          } else {
70 <            return friendlyName + "{"+ className + "(v" + revision.substring(11, revision.length() - 2) + ")}";
70 >            return friendlyName + "{"+ tidyClassName(className) + "(v" + revision.substring(11, revision.length() - 2) + ")}";
71          }
72 +    }
73 +
74 +    /**
75 +     * This method generates a nicely formatted line for the log,
76 +     * including the date/time and the source of the message. The date
77 +     * and time are formatted using the DateFormat class, and the source
78 +     * class is formatted using the toString() method found in every
79 +     * source file. This is then prepended to the message and returned.
80 +     *
81 +     * @param source A string representation of the calling object.
82 +     * @param verbosity The verbosity of the message.
83 +     * @param message The message to be logged.
84 +     * @return The string to be written to the log.
85 +     */
86 +    public static String formatLogLine(String source, int verbosity, String message){
87 +        String date = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM).format(new Date());
88 +        return "[" + date + "] [" + VERBOSITY_NAMES[verbosity] + "] " + source + ": " + message;
89 +    }
90 +
91 +    /**
92 +     * If the class name begins with uk.org.iscream.cms.server
93 +     * this method will trim it off, otherwise it
94 +     * leaves the string unchanged.
95 +     *
96 +     * @param className the name of a class
97 +     *
98 +     * @return the tidy version of it
99 +     */
100 +    private static String tidyClassName(String className) {
101 +        String prefix = "uk.org.iscream.cms.server";
102 +        if (className.startsWith(prefix)) {
103 +            return className.substring(prefix.length()+1);
104 +        }
105 +        return className;
106      }
107  
108   //---CONSTRUCTORS---

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines