Como criar um decorador Python que pode ser usado com ou sem parâmetro

Gostaria de criar um decorador Python que possa ser usado com os parâmetros:

@redirect_output("somewhere.log")
def foo():
    ....

ou sem eles (por exemplo, para redirecionar a saída para stderr por padrão):

@redirect_output
def foo():
    ....

Isso é, de todo, possível

Note que não estou procurando uma solução diferente para o problema de redirecionar a saída, é apenas um exemplo da sintaxe que gostaria de obte