Java/Velocity/Velocity Log
Содержание
Console Log System
<source lang="java">
import org.apache.velocity.runtime.RuntimeServices; import org.apache.velocity.runtime.log.LogSystem; public class ConsoleLogSystem implements LogSystem {
private RuntimeServices rs; private int maxLevel = LogSystem.INFO_ID; private static final String[] LEVEL_NAMES = new String[] { "ERROR", "WARN", "INFO", "DEBUG" }; private static final int[] LEVELS = new int[] { LogSystem.ERROR_ID, LogSystem.WARN_ID, LogSystem.INFO_ID, LogSystem.DEBUG_ID }; public void init(RuntimeServices rs) throws Exception { System.out.println("ConsoleLogSystem.init() called"); this.rs = rs; configure(); } public void logVelocityMessage(int level, String message) { if (level >= maxLevel) { System.out.println("[" + getLevelName(level) + "] " + message); } } private void configure() { String maxLevelName = rs.getString("console.logsystem.max.level"); int level = getLevelFromString(maxLevelName); if (level > -1) { System.out.println("Using log level: " + maxLevelName); maxLevel = level; } } private int getLevelFromString(String levelName) { for (int x = 0; x < LEVEL_NAMES.length; x++) { if (LEVEL_NAMES[x].equals(levelName)) { return LEVELS[x]; } } // should not arrive here, couldn"t find the level return -1; } private String getLevelName(int level) { for (int x = 0; x < LEVELS.length; x++) { if (LEVELS[x] == level) { return LEVEL_NAMES[x]; } } return "UNKNOWN"; }
}
</source>
Custom log for Velocity
<source lang="java">
/*
* Copyright 2000-2001,2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */
import org.apache.velocity.app.Velocity; import org.apache.velocity.VelocityContext; import org.apache.velocity.Template; import org.apache.velocity.exception.ParseErrorException; import org.apache.velocity.exception.ResourceNotFoundException; import java.io.*; import java.util.ArrayList; /**
* This class is a simple demonstration of how the Velocity Template Engine * can be used in a standalone application. * * @author
How to use an existing Log4j Category as the Velocity logging target
<source lang="java">
/*
* Copyright 2000-2001,2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */
import org.apache.log4j.BasicConfigurator; import org.apache.log4j.Category; import org.apache.velocity.app.VelocityEngine; import org.apache.velocity.runtime.RuntimeConstants;
/**
* Simple example class to show how to use an existing Log4j Categeory * as the Velocity logging target. * * @author
This is a toy demonstration of how Velocity can use an externally configured logger
<source lang="java">
/*
* Copyright 2000-2001,2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */
import org.apache.velocity.app.Velocity; import org.apache.velocity.runtime.log.LogSystem; import org.apache.velocity.runtime.RuntimeServices;
/**
* This is a toy demonstration of how Velocity * can use an externally configured logger. In * this example, the class using Velocity * implements Velocity"s logger interface, and * all Velocity log messages are funneled back * through it. * * @author