我用Payara Server做了一个集群,由两个实例组成,一个是本地,驻留在一个debian VM上,另一个远程,也驻留在另一个debian VM上。我部署了一个测试应用程序,当我在寻找日志时,就是找不到它们。更准确地说,我只是随机出现了一次,然后就再也没有了。它们显示在管理服务器->查看日志文件->实例1(本地)->日志文件-> Server .log。
下面测试应用程序
package clusterTest;
import java.io.Serializable;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean
@SessionScoped
public class MySession implements Serializable {
private String val;
private static final Logger LOG = Logger.getLogger(MySession.class.getName());
public String getVal() {
LOG.log(Level.INFO, "getVal{0}", val);
System.out.println("getVal");
return val;
}
public void setVal(String val) {
LOG.log(Level.INFO, "setVal{0}", val);
System.out.println("setVal");
this.val = val;
}
}
日志文件映像
Payara Server为每个实例创建一个单独的目录,以便它不会与域管理服务器的工作目录混合。
简而言之,如果您的域名是domain1
,您应该能够在PAYARA_INSTALL/glassfish/nodes/localhost-domain1/instance1/logs/server.log
中找到本地实例的日志。
Payara Server,以及GlassFish,创建实例并将它们放置在节点下。节点表示实例的位置—在您的示例中,您很可能有一个本地节点和一个用于第二个远程实例的节点。它们的配置是domain.xml的一部分,但是在实例第一次启动之前,Payara Server在glassfish/nodes
目录内的目录中生成另一个单独的目录,其中包含配置和运行时数据,如日志,该目录与domains
目录位于同一目录。
远程实例的文件应该存在于远程Payara Server安装中类似的位置。
@nakag已经在https://stackoverflow.com/a/31783809/2946593上说过,使用/ect/hosts中的环回地址将停止向集群实例显示日志。把这行注释掉:
<标题> 127.0.1.1"name_of_server"h1> 决了这个问题。 标题>