小编Ada*_*dam的帖子

枚举() - 用Python生成一个生成器

我想知道当我将生成器函数的结果传递给python的enumerate()时会发生什么.例:

def veryBigHello():
    i = 0
    while i < 10000000:
        i += 1
        yield "hello"

numbered = enumerate(veryBigHello())
for i, word in numbered:
    print i, word
Run Code Online (Sandbox Code Playgroud)

枚举是否是懒惰地迭代,还是将所有内容都插入第一个?我99.999%肯定它很懒,所以我可以把它当作生成器功能完全相同,还是我需要注意什么?

python iterator generator enumerate

70
推荐指数
3
解决办法
3万
查看次数

记录bash和stdout中的函数

我希望能够将日志消息放在bash函数的中间,而不会影响这些函数的输出.例如,请考虑以下功能log()get_animals():

# print a log a message
log ()
{
    echo "Log message: $1"
}

get_animals()
{
    log "Fetching animals"
    echo "cat dog mouse"
}

values=`get_animals`
echo $values
Run Code Online (Sandbox Code Playgroud)

之后$values包含字符串"Log message: Fetching animals cat dog mouse".

我应该如何修改这个脚本以便"Log message: Fetching animals"输出到终端,并$values包含"cat dog mouse"

bash logging stdout

13
推荐指数
3
解决办法
2万
查看次数

使用log4j在一行上获取多个日志

我正在使用org.apache.log4j.Logger,我经常在日志中看到如下所示的行:

2013-06-09T00:06:00,092 data data data dat2013-06-09T00:06:10,253 data data2013-06-09T00:06:16,202 data d2013-06-09T00:06:20,750 data data data data
Run Code Online (Sandbox Code Playgroud)

我期望看到的是:

2013-06-09T00:06:00,092 data data data data
2013-06-09T00:06:10,253 data data data data
2013-06-09T00:06:16,202 data data data data
2013-06-09T00:06:20,750 data data data data
Run Code Online (Sandbox Code Playgroud)

也就是说,多行日志在一行中塞满,并且日志信息被覆盖.我不知道我做错了什么,所以我想知道(A)是否有明显的东西或(B)任何可以帮助我解决这个问题的指针.

我的logger类看起来像这样:

public class MyLogger {
    private final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger("com.example.mylog");

    public void info(String info){
        synchronized (log){
            log.info(info);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我用的是这样的:

private CallsLogger callsLogger;
/* ... */
myLogger.info(String.format("%s\t%s\t%s\t%s", "data", "data", "data", "data"));
Run Code Online (Sandbox Code Playgroud)

我每天记录~40,000个事件,其中大约200个事件的格式不正确,每行有2到11个单独的事件.

我的log4j.xml看起来像这样:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "http://logging.apache.org/log4j/docs/api/org/apache/log4j/xml/log4j.dtd">
<log4j:configuration …
Run Code Online (Sandbox Code Playgroud)

java log4j

7
推荐指数
1
解决办法
3354
查看次数

标签 统计

bash ×1

enumerate ×1

generator ×1

iterator ×1

java ×1

log4j ×1

logging ×1

python ×1

stdout ×1