¿Cómo consigo que STDOUT y STDERR vayan a la terminal y a un archivo de registro?

Tengo un script que será ejecutado de forma interactiva por usuarios no técnicos. El script escribe actualizaciones de estado en STDOUT para que el usuario pueda estar seguro de que el script se está ejecutando correctamente.

Quiero que tanto STDOUT como STDERR sean redirigidos al terminal (para que el usuario pueda ver que el script está funcionando y ver si hubo un problema). También quiero que ambas transmisiones se redirijan a un archivo de registro.

He visto un montón de soluciones en la red. Algunos no funcionan y otros son terriblemente complicados. He desarrollado una solución viable (que ingresaré como respuesta), pero es muy difícil.

La solución perfecta sería una sola línea de código que podría incorporarse al comienzo de cualquier script que envíe ambas secuencias tanto al terminal como a un archivo de registro.

EDITAR: Redirigir STDERR a STDOUT y canalizar el resultado a tee funciona, pero depende de que los usuarios recuerden redirigir y canalizar la salida. Quiero que el registro sea infalible y automático (por eso me gustaría poder integrar la solución en el script en sí).

Respuestas a la pregunta(8)

Su respuesta a la pregunta