JAVA - 是否存在用于客户端 - 服务器交互/连接的日志/任何文件?

时间:2011-01-23 12:18:39

标签: java logging netbeans-6.9

我有一个客户端 - 服务器应用程序,它与存储医生,患者等的数据库进行交互。此应用程序的目的是在医生办公室设置预约。

这是我的问题:是否有某种文件/日志/类显示在客户端和服务器之间发送的所有内容。我需要尽可能多的信息,所以我可以调试。

非常感谢。

的Cristian。

4 个答案:

答案 0 :(得分:3)

我猜你需要捕获客户端/服务器的交互。在这种情况下,请查看WireShark。它将显示客户端和服务器之间的所有网络流量,并解码HTTP和其他协议。请注意,它不是IDE或语言相关的。

然后,您可以在客户端和服务器端使用此日志文件,以全面了解正在发生的事情。

答案 1 :(得分:1)

您可以使用DriverManager.setLogWriter()为JDBC驱动程序提供日志文件来记录JDBC通信(如果我没有弄错的话,您需要在建立与数据库的任何连接之前执行此操作

但我不知道任何会自动记录所有网络流量的库。为此,你需要像Wireshark这样的东西。

答案 2 :(得分:1)

如果这是web应用程序注册过滤器,它会将客户端的所有请求记录到某个文件中。

的web.xml:

<filter>
    <filter-name>MyLogFilter</filter-name>
    <filter-class>my.package.MyLogFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>MyLogFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

代码:

 public class MyLogFilter implements Filter {
  private static final Logger log = Logger.getLogger(MyLogFilter.class);
   public void doFilter(ServletRequest req, ServletResponse res,
          FilterChain chain) throws IOException, ServletException {

    HttpServletRequest request = (HttpServletRequest) req;

    //Get the IP address of client machine.
    String ipAddress = request.getRemoteAddr();

    //Log the IP address and current timestamp.
    log.info("IP "+ipAddress + ", Time "
                        + new Date().toString());

    chain.doFilter(req, res);
}

答案 3 :(得分:0)

您的解决方案是否基于NetBeans? Just Java没有,除非你使用java.util.Logger,Log4J,SLF4J或其他日志框架。

您的患者经理是开源的吗?我曾经开始研究基于NetBeans的解决方案(代号为MedBeans,后来是Paracelsus)但在我了解了Elexis之后放弃了这个想法,Elexis是一种特别在中欧德语国家流行的Eclipse方法。