Java web服务是否应该记录响应数据(如果是,在哪个级别)?

Java web服务是否应该记录响应数据(如果是,在哪个级别)?,java,web-services,logging,Java,Web Services,Logging,RESTful服务响应主体返回列表,其中 public class User { private String id; private List<String> roles; // constructor, getters, toString() are snipped } 公共类用户{ 私有字符串id; 私有列表角色; //构造函数、getter和toString()被截断 } 我正在努力决定是否应将列表登录到该服务中。一方面,记录数据可能有助

RESTful服务响应主体返回
列表
,其中

public class User {
    private String id;
    private List<String> roles;

    // constructor, getters, toString() are snipped    
}
公共类用户{
私有字符串id;
私有列表角色;
//构造函数、getter和toString()被截断
}

我正在努力决定是否应将
列表
登录到该服务中。一方面,记录数据可能有助于找到生产中的错误原因。另一方面,应考虑日志中的“噪声”和I/O操作的性能影响。记录上述用户列表的最佳做法是什么?(是否应该完全记录它?只记录它的
.length()
?使用哪种记录级别更好?

这取决于。在这种情况下,它取决于
列表的典型大小,是10秒吗?1000美元?它还取决于
用户
对象,它是否包含包括其他对象在内的大量字段


通常,您可以随时记录列表的大小。如果您决定记录内容,它应该处于
DEBUG
级别。此外,您可以覆盖
User
中的
toString()
,以输出更紧凑的字符串表示。

您不需要记录用户或他们的角色,您可能需要记录信息,这些信息将指导您获得更好的性能以及以后对代码的修改和优化。 对于级别,如果您使用的是LOG4J,那么您可能希望使用ERROR和WARN,INFO和DEBUG是次要的。 这里是但你可能想检查互联网,我认为有足够的信息让你做出一个最佳的日志策略

PS:我还不熟悉GDPR政策,但如果你在欧洲或其他地方,你可能想检查你的大陆政策,因为记录用户及其偏好和角色等。。。没有他们的直接同意可能是违法的。可能会让您了解在不违反法律的情况下记录必要数据的最佳做法