Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 文件appender中web.xml的logback值_Java_Glassfish_Logback - Fatal编程技术网

Java 文件appender中web.xml的logback值

Java 文件appender中web.xml的logback值,java,glassfish,logback,Java,Glassfish,Logback,我正在为Glassfish服务器开发Java web应用程序。我在设置文件附加器的路径时遇到问题。我想使用web.xml中定义的变量 Web.xml: <context-param> <param-name>webAppRootKey</param-name> <param-value>app.myApp-client.home</param-value> </context-param> WebAppr

我正在为Glassfish服务器开发Java web应用程序。我在设置文件附加器的路径时遇到问题。我想使用web.xml中定义的变量

Web.xml:

<context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>app.myApp-client.home</param-value>
</context-param>

WebApprotKey
app.myApp-client.home
Logback.xml(在src/main/resurces中)


${app.myApp client.home}/WEB-INF/app log/client.log
%日期%级别[%file:%line]%msg%n
将我的应用程序部署到名为的Glassfish日志文件后

/app.myApp-client.home_未定义/WEB-INF/app-log/client.log

是创建的。为什么参数app.myApp-client.home未定义?是否有更好的选项将应用程序路径放入文件追加器


谢谢。

您正在尝试引用该值而不是参数名

试着这样做:

<file>${webAppRootKey}/WEB-INF/app-log/client.log</file> 
${webapprotkey}/WEB-INF/app log/client.log

但我想这会给你
/app.myApp-client.home/WEB-INF/app-log/client.log
,这也不是你所期望的吗?:)

您正在尝试引用该值而不是参数名

试着这样做:

<file>${webAppRootKey}/WEB-INF/app-log/client.log</file> 
${webapprotkey}/WEB-INF/app log/client.log

但我想这会给你
/app.myApp-client.home/WEB-INF/app-log/client.log
,这也不是你所期望的吗?:)

这里有一些关于通过JNDI配置logback的信息:


这里还讨论了执行此操作的方法:

这里有一些关于通过JNDI配置logback的信息:


这里还讨论了执行此操作的方法:

可以将变量设置为值。在你的情况下,你会写:

  <insertFromJNDI env-entry-name="java:comp/env/webAppRootKey" as="webAppRootKey" />

  <appender name="FILE" class="ch.qos.logback.core.FileAppender">        
    <file>${webAppRootKey}/WEB-INF/app-log/client.log</file>        
    <encoder>
      <pattern>%date %level [%file:%line] %msg%n</pattern>
    </encoder>
  </appender>


对于
${webapprotkey}

可以将变量设置为值。在你的情况下,你会写:

  <insertFromJNDI env-entry-name="java:comp/env/webAppRootKey" as="webAppRootKey" />

  <appender name="FILE" class="ch.qos.logback.core.FileAppender">        
    <file>${webAppRootKey}/WEB-INF/app-log/client.log</file>        
    <encoder>
      <pattern>%date %level [%file:%line] %msg%n</pattern>
    </encoder>
  </appender>


对于
${webapprotkey}

你是对的。我想把我的应用程序的路径放在服务器上(例如/home/glassfish/domains/domain1/j2ee modules/MyApplication放在其他东西上)——它有任何常量/变量吗?关于
${application.home}
,如图所示,您是对的。我想把我的应用程序的路径放在服务器上(例如/home/glassfish/domains/domain1/j2ee modules/MyApplication放在其他东西上)——它有任何常量/变量吗