1 //
2 // Copyright 1998 CDS Networks, Inc., Medford Oregon
3 //
4 // All rights reserved.
5 //
6 // Redistribution and use in source and binary forms, with or without
7 // modification, are permitted provided that the following conditions are met:
8 // 1. Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer.
10 // 2. Redistributions in binary form must reproduce the above copyright
11 // notice, this list of conditions and the following disclaimer in the
12 // documentation and/or other materials provided with the distribution.
13 // 3. All advertising materials mentioning features or use of this software
14 // must display the following acknowledgement:
15 // This product includes software developed by CDS Networks, Inc.
16 // 4. The name of CDS Networks, Inc. may not be used to endorse or promote
17 // products derived from this software without specific prior
18 // written permission.
19 //
20 // THIS SOFTWARE IS PROVIDED BY CDS NETWORKS, INC. ``AS IS'' AND
21 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 // ARE DISCLAIMED. IN NO EVENT SHALL CDS NETWORKS, INC. BE LIABLE
24 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 // SUCH DAMAGE.
31 //
32
33
34 package com.internetcds.util;
35
36 import java.io.*;
37
38
39 /***
40 * This class will log messages into a file.
41 *
42 * @version $Id: Logger.html,v 1.1 2003/05/12 16:19:47 sinisa Exp $
43 * @author Craig Spannring
44 */
45 public class Logger
46 {
47 public static final String cvsVersion = "$Id: Logger.html,v 1.1 2003/05/12 16:19:47 sinisa Exp $";
48
49 private static String filename = "log.out";
50 private static boolean active = false;
51 private static PrintStream out = null;
52
53 /***
54 * Initialize the logger facility.
55 * <p>
56 * If the log facility hasn't been initialized yet this routine will
57 * open the log file.
58 * <p>
59 * The routine must be called before any logging takes place.
60 * All of the functions in this class that log messages should
61 * call this routine. It doesn't hurt anything if this is called
62 * multiple times.
63 */
64 synchronized private static void init()
65 throws IOException
66 {
67 // check to see if the file is already open
68 if (out==null)
69 {
70 // open the log file
71 out = new PrintStream(new FileOutputStream(filename));
72 }
73 }
74
75 /***
76 * Turn the logging on or off.
77 * <p>
78 * The first time logging is turned on it will create the log file.
79 *
80 * @param value when value is true it will turn the logging on,
81 * if it is false it will turn the logging off.
82 */
83 synchronized public static void setActive(boolean value)
84 throws IOException
85 {
86 init();
87 active = value;
88 }
89
90 /***
91 * Is logging turned on?
92 */
93 public static boolean isActive()
94 {
95 return active;
96 }
97
98 /***
99 * set the name of the log file.
100 * <p>
101 * This method allows you to set the name of the log file.
102 * <B>Note-</B> Once the log file is open you can not change the
103 * name.
104 *
105 * @param value name of the log file.
106 */
107 public synchronized static void setFilename(String value)
108 {
109 filename = value;
110 }
111
112 /***
113 * return the name of the log file.
114 */
115 public static String getFilename()
116 {
117 return filename;
118 }
119
120 /***
121 * Print a string into the log file if and only if logging is active
122 */
123 synchronized public static void print(String msg)
124 throws IOException
125 {
126 if (active)
127 {
128 init();
129 out.print(msg);
130 }
131 }
132
133 /***
134 * Print a string into the log file if and only if logging is active
135 */
136 synchronized public static void println(String msg)
137 throws IOException
138 {
139 if (active)
140 {
141 init();
142 out.println(msg);
143 }
144 }
145 }
This page automatically generated by Maven