Измените расположение файла Velocity.Log

Я использовал velocity-1.6.2.jar

моя проблема в том, что velocity.log создается при запуске сервера под jboss / bin

jboss / bin имеет разрешение только на чтение.

и в моем приложении, когда будет вызвана скорость 1.6.2.jar, у меня есть эта ошибка:

Caused by: java.io.FileNotFoundException: velocity.log (Permission denied)

Я хочу изменить расположение файла Velocity.Log

Это линия местоположения в моих свойствах скорости:

# ----------------------------------------------------------------------------
#  default LogChute to use: default: AvalonLogChute, Log4JLogChute, CommonsLogLogChute, ServletLogChute, JdkLogChute
# ----------------------------------------------------------------------------

runtime.log.logsystem.class = org.apache.velocity.runtime.log.AvalonLogChute,org.apache.velocity.runtime.log.Log4JLogChute,org.apache.velocity.runtime.log.CommonsLogLogChute,org.apache.velocity.runtime.log.ServletLogChute,org.apache.velocity.runtime.log.JdkLogChute

# ---------------------------------------------------------------------------
# This is the location of the Velocity Runtime log.
# ----------------------------------------------------------------------------

runtime.log = velocity.log

person franco    schedule 07.10.2017    source источник
comment
Возможный дубликат Изменение местоположения файла Velocity.Log   -  person user7294900    schedule 08.10.2017


Ответы (2)


Журнал времени выполнения может получить полный путь, поэтому просто направьте журнал на свой желаемая папка как /home/velocity.log

 runtime.log = /home/velocity.log

Полный путь и имя файла журнала для сообщений об ошибках, предупреждений и информационных сообщений. Местоположение, если не абсолютное, относится к «текущему каталогу».

Обновление (27-02-2018)

Путь к журналу также можно задать программно следующим образом:

import org.apache.velocity.app.VelocityEngine;
public class VelocityCustomEngine extends TemplateEngine {

    private final VelocityEngine velocityEngine;

    public VelocityCustomEngine() {
        Properties properties = new Properties();
        properties.setProperty("runtime.log", "/home/velocity.log");

        this.velocityEngine = new VelocityEngine(properties);
    }
}
person user7294900    schedule 09.10.2017

Я знаю, что есть ответ. Если вы не хотите расширять исходный VelocityEngine. Вы также можете создать новый экземпляр VelocityEngine, изменив только свойства «runtime.log» перед методом init () без какого-либо нового класса.

        VelocityEngine velocityEngine = new VelocityEngine();
        velocityEngine.setProperty("runtime.log", "/home/velocity.log");
        velocityEngine.setProperty(RuntimeConstants.ENCODING_DEFAULT, "UTF-8");
        velocityEngine.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
        velocityEngine.setProperty("classpath.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
        velocityEngine.init();//init method will use the properties(include the log file location) actually.
        return velocityEngine;
person Ron    schedule 29.04.2020