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

雅罗斯瓦夫(Jaroslaw Pawlak)

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

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

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

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

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

雅罗斯瓦夫(Jaroslaw Pawlak)

这为我完成了窍门:

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

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

来自分类Dev

自定义PostSharp日志记录

来自分类Dev

自定义Umbraco日志记录

来自分类Dev

Python自定义日志记录

来自分类Dev

Apache Storm:自定义日志记录

来自分类Dev

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

来自分类Dev

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

来自分类Dev

为自定义UICollectionviewCell实现countbyenumeratingwithstate

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

为iptables配置自定义日志文件

来自分类Dev

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

来自分类Dev

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

来自分类Dev

自定义Dropwizard HealthCheck响应

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

Related 相关文章

  1. 1

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

  2. 2

    自定义PostSharp日志记录

  3. 3

    自定义Umbraco日志记录

  4. 4

    Python自定义日志记录

  5. 5

    Apache Storm:自定义日志记录

  6. 6

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

  7. 7

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

  8. 8

    为自定义UICollectionviewCell实现countbyenumeratingwithstate

  9. 9

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

  10. 10

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

  11. 11

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

  12. 12

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

  13. 13

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

  14. 14

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

  15. 15

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

  16. 16

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

  17. 17

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

  18. 18

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

  19. 19

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

  20. 20

    为iptables配置自定义日志文件

  21. 21

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

  22. 22

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

  23. 23

    自定义Dropwizard HealthCheck响应

  24. 24

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

  25. 25

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

  26. 26

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

  27. 27

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

  28. 28

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

  29. 29

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

热门标签

归档