Java Logback 1.7.1,JEE7-insertFromJNDI无法检索appName

Java Logback 1.7.1,JEE7-insertFromJNDI无法检索appName,java,jndi,logback,java-ee-7,payara,Java,Jndi,Logback,Java Ee 7,Payara,我正在尝试使用logback.xml配置中的以下语句在Payara 4.1上为每个部署的应用程序(war)设置日志记录 <insertFromJNDI env-entry-name="java:app/AppName" as="appName"/> <contextName>${appName}</contextName> 并且上下文未设置为正确的valeu(例如myApplicationName) 但如果我在随机EJB上执行此操作: @Resource(l

我正在尝试使用logback.xml配置中的以下语句在Payara 4.1上为每个部署的应用程序(war)设置日志记录

<insertFromJNDI env-entry-name="java:app/AppName" as="appName"/>
<contextName>${appName}</contextName>
并且上下文未设置为正确的valeu(例如myApplicationName) 但如果我在随机EJB上执行此操作:

@Resource(lookup = "java:app/AppName")
private String appName;

我得到了期望值。我怀疑Logback配置试图在容器设置值之前检索该值。它不是专门设置的,因此默认为部署期间指定的名称。有没有办法让Logback在正确初始化后检索它?

好的,我发现了错误。在logback配置中使用了appName而不是appName

<insertFromJNDI env-entry-name="java:app/appName" as="appName"/>
<contextName>${appName}</contextName>

${appName}

很简单,但由于我已经读了好几遍,我希望这能帮助s.o.找到类似的错误。顺便说一句,logback没有向提交的环境条目名称添加任何内容(例如java:env)。

一句警告。我有一个组件使用
@Startup
进行一些引导,但我没有让这个组件通过JNDI正确定义logback上下文。甚至在这之前,
@DataSourceDefinition(name=“java:global/MyApp/MyDataSource
正在初始化第一个记录器,该记录器将通过JNDI检索不存在的AppName。
<insertFromJNDI env-entry-name="java:app/appName" as="appName"/>
<contextName>${appName}</contextName>