Jump to content

Alfred 3 Tip: Use stderr to output to the debug console


Recommended Posts

I love Alfred but I struggled at first to troubleshoot my workflow scripts due to difficulty finding a way to debug.  I've seen posts mentioning writing logs to an external file but that seemed hack-y, especially since Alfred includes a debug console.  If you'd like to use the console to debug your scripts, I found the following very useful.  It would be great if there were a mention of this in the docs:

 

To show script output in the debug console, print (or echo or put, etc) the output to stderr instead of stdout.

 

In a Bash script:

>&2 echo "Log this output to the console"

YSlrm25.gif

 

In a Python script:

import sys

sys.stderr.write("Log this to the console")

AxVjlUI.gif

 

For other languages, look for an equivalent method that allows you to log to stderr.

Link to post

If you're going to use sys.stderr.write() in Python, don't forget to add the trailing newline: 

sys.stderr.write('Message\n')

 
For simple scripts, I normally use this log() function: 

# Needed to use print this way
from __future__ import print_function
 
def log(s, *args):
    if args:
        s = s % args
    print(s, file=sys.stderr)
 
# Usage 
log('var1=%r, var2=%r', var1, var2)
Link to post

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...