seqcli
seqcli copied to clipboard
Allow option to retain ANSI color codes when output is piped
In PowerShell Core (pwsh), the following command outputs human readable logs, in colour:
Get-Content .\upgrade-assistant.clef | seqcli print

However, if I want to view this at the command line using something like less then the ANSI colour codes are stripped out:
Get-Content .\upgrade-assistant.clef | seqcli print | less

I assume seqcli strips out ANSI control codes when the output is being piped or redirected in order to be friendly to consumers further down the pipe. It would be great if we could force seqcli print to emit the ANSI colour codes in some circumstances, particularly interactive console sessions. Perhaps a positive version of --no-color with an interactive-friendly shorthand version?
Get-Content .\upgrade-assistant.clef | seqcli print --color | less
or
Get-Content .\upgrade-assistant.clef | seqcli print -c | less
It would be great if this could be implemented in clef-tool too, but I understand where the activity is...
Thanks for the suggestion! Perhaps --force-color would make the behavior of the flag slightly clearer?
The print command works by pushing events through Serilog.Sinks.Console, which already accepts an applyThemeToRedirectedOutput flag.
Along with specifying this, --force-color would also have to specify an ANSI console theme (on Windows, Serilog.Sinks.Console doesn't use ANSI codes by default).
Open to a PR, if anyone's able to take a look.