Web服务是否应记录响应数据(如果是,则在哪个级别上)?

时间:2018-05-16 16:45:29

标签: java web-services logging

响应正文中的RESTful服务返回List<User>,其中

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

    // constructor, getters, toString() are snipped    
}

我正在努力决定是否应该在服务中记录List<User>。一方面,记录数据可能有助于查找生产中的错误原因。另一方面,&#34;噪音&#34;在日志和I / O操作的性能影响应考虑在内。记录上述用户列表的最佳做法是什么? (它应该完全记录吗?只有它的.length()?什么日志记录级别会更好用?)

2 个答案:

答案 0 :(得分:2)

这取决于。在这种情况下,它取决于List<User>的典型大小,是10秒? 1000?它还取决于User对象,它是否包含大量字段,包括其他对象?

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

答案 1 :(得分:1)

您不需要记录用户或他们的角色,您可能希望记录的信息可以为您提供更好的性能指导,以及稍后对代码的修改和优化。 对于级别,如果您使用的是LOG4J,则可能需要使用ERROR和WARN,INFO和DEBUG是次要的。 这是a link for best practices to log in java,但您可能想查看互联网,我认为有足够的信息可以帮助您制定最佳的日志记录策略。

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