2017-08-07 91 views
0

我試圖在我的logback.xml配置中使用以下語句在Payara 4.1上設置每個部署的應用程序(war)的日誌記錄。Logback 1.7.1,JEE7 - insertFromJNDI無法檢索appName

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

我在啓動時從的logback得到這個消息:

INFO in ch.qos.logback.classic.LoggerContext[appName_IS_UNDEFINED] 

和上下文未設置正確valeu(如myApplicationName) ,但如果我這樣做的一個隨機EJB:

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

我得到期望值。我懷疑Logback配置嘗試在容器設置值之前檢索值。它沒有專門設置,因此它默認爲部署期間指定的名稱。有沒有辦法讓Logback在它正確初始化後檢索它?

回答

1

好的,我發現了錯誤。有appName而不是AppName in logback config。

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

這麼簡單,但由於我多次閱讀它,我希望這會幫助s.o.找到類似的錯誤。 BTW logback不會向提交的env-entry-name添加任何內容(例如,java:env)。

+0

一個字的謹慎。我有一個組件使用'@ Startup'作爲一些引導程序,我沒有那個通過JNDI正確定義logback上下文。 – Markus

+0

甚至在@DataSourceDefinition(name =「java:global/MyApp/MyDataSource」)正在初始化輪胎以通過JNDI檢索不存在的AppName的第一個記錄器之前。 – Markus