为Dropwizard资源实现自定义日志记录

雅罗斯瓦夫·帕拉克

我有一个具有多种资源的dropwizard应用程序。我需要实现一些自定义日志记录,所有资源应相同,并且应包含URL,响应时间,响应大小以及从请求标头中提取的一些数据。通常,我希望能够确切指定所需的格式和格式。我不想将代码添加到任何资源中(因为其中有50多个)。

我进行了一些搜索,找到了一些有趣的文章,但是我不知道如何实现它-我尝试过的一些方法不起作用:

我考虑过使用面向方面的编程,因为所有资源都会返回Response,但仅出于这个原因,我就AspectJ要求Spring不要将其引入项目中。

我还在InstrumentedHandlerDropwizard的指标中发现这篇文章,它看起来确实是我需要的东西,但是我找不到如何将其插入应用程序的任何示例。

您对如何实现此日志记录有任何建议吗?

雅罗斯瓦夫·帕拉克

这为我完成了窍门:

import com.sun.jersey.api.container.filter.LoggingFilter;
import com.sun.jersey.spi.container.ContainerRequest;
import com.sun.jersey.spi.container.ContainerRequestFilter;
import com.sun.jersey.spi.container.ContainerResponse;

public class LogFilter extends LoggingFilter implements ContainerRequestFilter {

    private final ThreadLocal<Long> startTime = new ThreadLocal<>();

    @Override
    public ContainerRequest filter(ContainerRequest containerRequest) {
        // gets called when the request comes in
        startTime.set(System.currentTimeMillis());
        return containerRequest;
    }

    @Override
    public ContainerResponse filter(ContainerRequest request, ContainerResponse response) {
        // gets called when the response is about to be returned
        // do the logging here
        return response;
    }

}

并在应用程序的run方法中:

@Override
public void run(MyConfiguration configuration, Environment environment) {
    LogFilter logFilter = new LogFilter();
    environment.jersey().getResourceConfig().getContainerRequestFilters().add(logFilter);
    environment.jersey().getResourceConfig().getContainerResponseFilters().add(logFilter);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Twitter日志记录和Scala自定义处理程序

来自分类Dev

如何从Dropwizard资源中访问包装在自定义类中的请求?

来自分类Dev

如何使自定义日志记录在CherryPy中工作?

来自分类Dev

自定义Dropwizard HealthCheck响应

来自分类Dev

Dropwizard不会将自定义记录程序记录到文件中

来自分类Dev

为自定义&[u8]类型实现FromStr

来自分类Dev

对特定资源禁用dropwizard的内部日志记录

来自分类Dev

PlayFramework,带有xml的自定义日志记录配置

来自分类Dev

为Dropwizard资源实现自定义日志记录

来自分类Dev

如何使用自定义Dropwizard筛选器有选择地保护资源

来自分类Dev

减少HTTP请求,contextmanager或自定义日志记录级别的日志噪音?

来自分类Dev

为动态矩阵类实现自定义迭代器

来自分类Dev

为AFNetworking 3.x实现自定义缓存

来自分类Dev

为自定义数据类型实现sum()

来自分类Dev

在Django中添加自定义日志记录

来自分类Dev

自定义PostSharp日志记录

来自分类Dev

自定义Umbraco日志记录

来自分类Dev

为自定义UICollectionviewCell实现countbyenumeratingwithstate

来自分类Dev

为iptables配置自定义日志文件

来自分类Dev

自定义日志记录类python作用域

来自分类Dev

使用自定义参数的AOP日志记录

来自分类Dev

Python自定义日志记录

来自分类Dev

Apache Storm:自定义日志记录

来自分类Dev

PRISM引导程序的自定义日志记录界面

来自分类Dev

减少HTTP请求,contextmanager或自定义日志记录级别的日志噪音?

来自分类Dev

为动态矩阵类实现自定义迭代器

来自分类Dev

在python中从多个线程实现自定义输出日志记录

来自分类Dev

MvvmCross 自定义日志提供程序不从自身记录

来自分类Dev

为自定义 std::map 迭代器实现 erase()

Related 相关文章

  1. 1

    Twitter日志记录和Scala自定义处理程序

  2. 2

    如何从Dropwizard资源中访问包装在自定义类中的请求?

  3. 3

    如何使自定义日志记录在CherryPy中工作?

  4. 4

    自定义Dropwizard HealthCheck响应

  5. 5

    Dropwizard不会将自定义记录程序记录到文件中

  6. 6

    为自定义&[u8]类型实现FromStr

  7. 7

    对特定资源禁用dropwizard的内部日志记录

  8. 8

    PlayFramework,带有xml的自定义日志记录配置

  9. 9

    为Dropwizard资源实现自定义日志记录

  10. 10

    如何使用自定义Dropwizard筛选器有选择地保护资源

  11. 11

    减少HTTP请求,contextmanager或自定义日志记录级别的日志噪音?

  12. 12

    为动态矩阵类实现自定义迭代器

  13. 13

    为AFNetworking 3.x实现自定义缓存

  14. 14

    为自定义数据类型实现sum()

  15. 15

    在Django中添加自定义日志记录

  16. 16

    自定义PostSharp日志记录

  17. 17

    自定义Umbraco日志记录

  18. 18

    为自定义UICollectionviewCell实现countbyenumeratingwithstate

  19. 19

    为iptables配置自定义日志文件

  20. 20

    自定义日志记录类python作用域

  21. 21

    使用自定义参数的AOP日志记录

  22. 22

    Python自定义日志记录

  23. 23

    Apache Storm:自定义日志记录

  24. 24

    PRISM引导程序的自定义日志记录界面

  25. 25

    减少HTTP请求,contextmanager或自定义日志记录级别的日志噪音?

  26. 26

    为动态矩阵类实现自定义迭代器

  27. 27

    在python中从多个线程实现自定义输出日志记录

  28. 28

    MvvmCross 自定义日志提供程序不从自身记录

  29. 29

    为自定义 std::map 迭代器实现 erase()

热门标签

归档