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
Revision: 1.9
Committed: Thu Mar 15 00:44:31 2001 UTC (23 years, 1 month ago) by tdb
Branch: MAIN
Changes since 1.8: +4 -3 lines
Log Message:
Opps. Now we're using a different package name, we need to strip the beginning
off differently for log messages.

File Contents

# Content
1 //---PACKAGE DECLARATION---
2 package uk.org.iscream.util;
3
4 //---IMPORTS---
5 import java.util.Date;
6 import java.text.DateFormat;
7 import java.util.Locale;
8
9 /**
10 * This class provides static methods to format the
11 * name of a calling object. It's main use is by
12 * the various objects within the system to create
13 * a toString String to send to the logger.
14 *
15 * @author $Author: tdb1 $
16 * @version $Id: FormatName.java,v 1.8 2001/03/14 23:25:29 tdb1 Exp $
17 */
18 public class FormatName {
19
20 //---FINAL ATTRIBUTES---
21
22 /**
23 * An array of names of verbosity levels.
24 * Thus logging messages are now "classed" by the level
25 */
26 private final static String[] VERBOSITY_NAMES = {"FATAL ", "ERROR ", "WARNING", "SYSMSG ", "SYSINIT", "DEBUG "};
27
28 //---STATIC METHODS---
29
30 /**
31 * This method takes a set of information about the calling
32 * class and constructs a tidy String name to be returned.
33 * This is of use to the override of the toString() as
34 * implemented by most of the iscream objects.
35 *
36 * @param friendlyName the configured name of the instance of the calling component the class is in (eg "filter1")
37 * @param className the class name of the calling class, as obtained by getClass().getName()
38 * @param revision the CVS Revision number for the calling class
39 *
40 * @return an iscream standard name to be used as a toString()
41 */
42 public static String getName(String friendlyName, String className, String revision) {
43 if (friendlyName == null && className == null) {
44 return "{static(v" + revision.substring(11, revision.length() - 2) + ")}";
45 } else if (friendlyName == null) {
46 return "{"+ tidyClassName(className) + "(v" + revision.substring(11, revision.length() - 2) + ")}";
47 } else if (className == null) {
48 return friendlyName + "{static(v" + revision.substring(11, revision.length() - 2) + ")}";
49 } else {
50 return friendlyName + "{"+ tidyClassName(className) + "(v" + revision.substring(11, revision.length() - 2) + ")}";
51 }
52 }
53
54 /**
55 * This method generates a nicely formatted line for the log,
56 * including the date/time and the source of the message. The date
57 * and time are formatted using the DateFormat class, and the source
58 * class is formatted using the toString() method found in every
59 * source file. This is then prepended to the message and returned.
60 *
61 * @param source A string representation of the calling object.
62 * @param verbosity The verbosity of the message.
63 * @param message The message to be logged.
64 * @return The string to be written to the log.
65 */
66 public static String formatLogLine(String source, int verbosity, String message){
67 String date = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM, Locale.UK).format(new Date());
68 return "[" + date + "] [" + VERBOSITY_NAMES[verbosity] + "] " + source + ": " + message;
69 }
70
71 /**
72 * If the class name begins with uk.org.iscream
73 * this method will trim it off, otherwise it
74 * leaves the string unchanged.
75 *
76 * @param className the name of a class
77 *
78 * @return the tidy version of it
79 */
80 private static String tidyClassName(String className) {
81 String prefix = "uk.org.iscream";
82 if (className.startsWith(prefix)) {
83 return className.substring(prefix.length());
84 }
85 return className;
86 }
87
88 //---CONSTRUCTORS---
89
90 /**
91 * A private constructor ensures an instance of this
92 * class CANNOT be created.
93 */
94 private FormatName() {
95 // do nothing on purpose!
96 }
97
98 //---PUBLIC METHODS---
99
100 //---PRIVATE METHODS---
101
102 //---ACCESSOR/MUTATOR METHODS---
103
104 //---ATTRIBUTES---
105
106 //---STATIC ATTRIBUTES---
107
108 }