Complete the code to declare a topic exchange named 'logs'.
channel.exchange_declare(exchange='logs', exchange_type='[1]')
The exchange type for pattern matching routing keys is topic.
Complete the binding key to receive all logs from any service.
channel.queue_bind(exchange='logs', queue='all_logs', routing_key='[1]')
The # wildcard matches zero or more words, so it receives all messages.
Fix the error in the binding key to receive logs only from 'auth' service with any severity.
channel.queue_bind(exchange='logs', queue='auth_logs', routing_key='[1]')
The binding key auth.* matches routing keys starting with 'auth' followed by exactly one word (severity).
Fill both blanks to bind a queue to receive error logs from any service.
channel.queue_bind(exchange='logs', queue='error_logs', routing_key='[1].[2]')
The binding key *.error matches any service with 'error' severity.
Fill all three blanks to create a binding key that matches logs from 'auth' or 'payment' services with any severity.
binding_keys = ['auth.[1]', 'payment.[2]', '[3]']
The keys 'auth.*' and 'payment.*' match any severity for those services, and '#' matches all routing keys.