Beh...la mia funzione ovviamente viene chiamata a fronte di un errore tramite la ridefinizione degli "handler":
set_error_handler("my_error_handler");
e la funzione my_error_handler ha il necessario per capire se si tratta di produzione o di sviluppo. Se si tratta di sviluppo visualizza a video in base alla funzione che ti ho sritto, altrimenti invia una mail (con il medesimo contenuto)
Per capire se si tratta di sviluppo o produzione di solito setto una variabile di tipo env nel corrispondente server web e leggo quella variabile