the condition is wrong, it will let everything pass when logstdout is True, it isn't limited to stderr/stdout systems.

I don't get what the parenthesis tries to group, it's equivalent to (but still wrong):

    if not (logstdout or env.get('system') == 'scrapy' or ev['isError']):