contents controlling the amount of information logged logger methods default logger module level loggers logger hierarchy formatters formatting log messages formatting log output online resources exercises advanced logging introduction handlers setting the root output handler programmatically setting the handler multiple handlers filters logger configuration performance considerations exercises part vii concurrency and parallelism introduction to concurrency and parallelism introduction concurrency parallelism distribution grid computing concurrency and synchronisation object orientation and concurrency threads processes some terminology online resources threading introduction threads thread states creating thread instantiating the thread class the thread class