在Stream中记录 [英] Logging inside Stream

查看:135
本文介绍了在Stream中记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将这段代码转换为Java 8流:

I am trying to convert this piece of code to Java 8 stream:

if(list!=null && list.size()>0){
    Actor actor = null;
    for(Actor actor:list){
        log.info("Actor being read: "  actor.getCode());
        List areaList = areaDAO.getArea(actor.getCode());
        if (areaList.size() > 0)
        {
            actor.setArea((String) areaList.get(0));
            log.info("Area{" + areaList.get(0)
                     + "} is fetched for actor{" + actor.getCode() + "}.");
        }
        this.getContext().setReadCount(1);
    }
}

但是我不知道如何处理登录这个案例?这是一个好习惯吗?感谢您的帮助。谢谢

However I am not sure how to deal with logging in this case? Is it a good practice? Appreciate your help. Thanks

推荐答案

我们经常将登录信息放入代码中以支持调试。在这种情况下,我建议你看一下 peek 方法。

Often we put logging into our code to support debugging. In this case I would recommend you to have a look at the peek method.

这是一个提示:

   List<Actor> actors = ...;

    actors.
        stream().
        peek(a -> System.out.println("Processing code: " + a.getCode())).
        forEach(a -> {/*Do something here*/});

来自javadocs:

From the javadocs:


API注意:
此方法主要用于支持调试,您希望在元素流经管道中的某个点时查看元素:

API Note: This method exists mainly to support debugging, where you want to see the elements as they flow past a certain point in a pipeline:

这篇关于在Stream中记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆