EMMA Coverage Report (generated Tue May 18 22:13:27 CDT 2004)
[all classes][org.apache.velocity.runtime.log]

COVERAGE SUMMARY FOR SOURCE FILE [AvalonLogSystem.java]

nameclass, %method, %block, %line, %
AvalonLogSystem.java100% (1/1)100% (4/4)75%  (129/172)82%  (27/33)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class AvalonLogSystem100% (1/1)100% (4/4)75%  (129/172)82%  (27/33)
init (RuntimeServices): void 100% (1/1)47%  (35/74)62%  (8/13)
logVelocityMessage (int, String): void 100% (1/1)93%  (51/55)91%  (10/11)
AvalonLogSystem (): void 100% (1/1)100% (9/9)100% (4/4)
init (String): void 100% (1/1)100% (34/34)100% (5/5)

1package org.apache.velocity.runtime.log;
2 
3/*
4 * Copyright 2001,2004 The Apache Software Foundation.
5 * 
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 * 
10 *      http://www.apache.org/licenses/LICENSE-2.0
11 * 
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18 
19import java.io.File;
20 
21import org.apache.log.Priority;
22import org.apache.log.Logger;
23import org.apache.log.Hierarchy;
24import org.apache.log.LogTarget;
25import org.apache.log.output.io.FileTarget;
26 
27import org.apache.velocity.runtime.RuntimeServices;
28import org.apache.velocity.runtime.RuntimeConstants;
29 
30/**
31 * Implementation of a Avalon logger.
32 *
33 * @author <a href="mailto:jon@latchkey.com">Jon S. Stevens</a>
34 * @author <a href="mailto:geirm@optonline.net">Geir Magnusson Jr.</a>
35 * @version $Id: AvalonLogSystem.java,v 1.12.4.1 2004/03/03 23:22:56 geirm Exp $
36 */
37public class AvalonLogSystem implements LogSystem
38{
39    private Logger logger = null;
40 
41    private RuntimeServices rsvc = null;
42 
43    /**
44     *  default CTOR.  Initializes itself using the property RUNTIME_LOG
45     *  from the Velocity properties
46     */
47 
48    public AvalonLogSystem()
49    {
50    }
51 
52    public void init( RuntimeServices rs )
53        throws Exception
54    {
55        this.rsvc = rs;
56 
57        /*
58         *  if a logger is specified, we will use this instead of
59         *  the default
60         */
61        String loggerName = (String) rsvc.getProperty("runtime.log.logsystem.avalon.logger");
62        
63        if (loggerName != null)
64        {
65            this.logger = Hierarchy.getDefaultHierarchy().getLoggerFor(loggerName);
66        } 
67        else 
68        {
69            /*
70             *  since this is a Velocity-provided logger, we will
71             *  use the Runtime configuration
72             */
73            String logfile = (String) rsvc.getProperty( RuntimeConstants.RUNTIME_LOG );
74 
75            /*
76             *  now init.  If we can't, panic!
77             */
78            try
79            {
80                init( logfile );
81 
82                logVelocityMessage( 0,
83                    "AvalonLogSystem initialized using logfile '" + logfile + "'" );
84            }
85            catch( Exception e )
86            {
87                System.out.println(
88                    "PANIC : Error configuring AvalonLogSystem : " + e );
89                System.err.println(
90                    "PANIC : Error configuring AvalonLogSystem : " + e );
91 
92                throw new Exception("Unable to configure AvalonLogSystem : " + e );
93            }
94        }
95    }
96 
97    /**
98     *  initializes the log system using the logfile argument
99     *
100     *  @param logFile   file for log messages
101     */
102    public void init(String logFile)
103        throws Exception
104    {
105 
106        /*
107         *  make our FileTarget.  Note we are going to keep the 
108         *  default behavior of not appending...
109         */
110        FileTarget target = new FileTarget( new File( logFile), 
111                                            false, 
112                                            new VelocityFormatter("%{time} %{message}\\n%{throwable}" ) );
113       
114        /*
115         *  use the toString() of RuntimeServices to make a unique logger
116         */
117 
118        logger = Hierarchy.getDefaultHierarchy().getLoggerFor( rsvc.toString() );
119        logger.setPriority( Priority.DEBUG );
120        logger.setLogTargets( new LogTarget[] { target } );
121    }
122    
123    /**
124     *  logs messages
125     *
126     *  @param level severity level
127     *  @param message complete error message
128     */
129    public void logVelocityMessage(int level, String message)
130    {
131        /*
132         *  based on level, call teh right logger method
133         *  and prefix with the appropos prefix
134         */
135 
136        switch (level) 
137        {
138            case LogSystem.WARN_ID:
139                logger.warn( RuntimeConstants.WARN_PREFIX + message );
140                break;
141            case LogSystem.INFO_ID:
142                logger.info( RuntimeConstants.INFO_PREFIX + message);
143                break;
144            case LogSystem.DEBUG_ID:
145                logger.debug( RuntimeConstants.DEBUG_PREFIX + message);
146                break;
147            case LogSystem.ERROR_ID:
148                logger.error(RuntimeConstants.ERROR_PREFIX + message);
149                break;
150            default:
151                logger.info( message);
152                break;
153        }
154    }
155}

[all classes][org.apache.velocity.runtime.log]
EMMA 2.0.4015 (stable) (C) Vladimir Roubtsov