Usando C / C ++, como você imprime em stdout em cores, mas somente se o terminal suportar?

Eu tenho um programa que registra as coisas paraSTDOUT.

Essas entradas de log têm um "nível de log" associado (depuração, aviso, informações e assim por diante) e eu gostaria de dar ao usuário a capacidade de colorir essa saída, dependendo do nível de log.

Qual é o modo de determinar seSTDOUT está ligado a um terminal que é capaz de cor? E como posso produzir meu texto com cores?

Eu estou procurando uma solução que envolve apenas chamadas C ou C ++. eu achocurses (ouncurses) tem algo para facilitar isso, mas eu gostaria de evitar seu uso para manter minhas dependências no mínimo.

questionAnswers(1)

yourAnswerToTheQuestion