Skip to the content.
Examples

Logger

How to log in .spy

File: example.spy


from logging import DEBUG

$date

# in a .spy file, "logger" is directly accessible
$.log(DEBUG,f'now is {$.stdout.strip()}')

Execution

sshscript example.spy --debug

Customizing with $.logger

For customizing logger, do it like this

from logging import INFO, Formatter

# in a .spy file, "logger" is directly accessible
$.logger.setLevel(INFO)

# uncomment the next line to set formatter
#$.logger.handlers[0].setFormatter(Formatter('[HAPPY]:%(message)s'))

# execute command and do logging
$date
$.log(INFO,f'now is {$.stdout.strip()}')

Execution

# note: there is no \-\-debug argument
$sshscript example.spy 

Using custom logger in a .py file(example 1)

File: example.py

from logging import DEBUG, Formatter
import logging,sys

# make a custom logger and handler
handler = logging.StreamHandler(sys.stdout)
handler.setFormatter(logging.Formatter('[HAPPY]:%(message)s')) 
logger = logging.getLogger('mylogger')
logger.addHandler(handler)
logger.setLevel(INFO)

# set it to be sshscript's logger
from sshscript import runScript, runFile, setupLogger
setupLogger(logger)

# a block of .spy script
runScript('''
    from logging import INFO
    $date
    $.log(INFO,f'now is {$.stdout.strip()}')
''')

# a .spy file
runFile('test.spy')

File: test.spy

from logging import INFO
$date
$.log(INFO,f'now is {$.stdout.strip()}')

Execution

python3 example.py

Using custom logger in a .py file (example2)

File: example.py

from logging import DEBUG, INFO, WARN, ERROR, Formatter
import logging,sys

# make a custom logger and handler
handler = logging.StreamHandler(sys.stdout)
handler.setFormatter(logging.Formatter('[HAPPY]:%(message)s')) 
logger = logging.getLogger('mylogger')
logger.addHandler(handler)
logger.setLevel(INFO)

# set it to be sshscript's logger
from sshscript import setupLogger, SSHScript
setupLogger(logger)

# create an instance of SSHScript
session = SSHScript()

session.run('''
    $.connect('timwang@rms3')
''')    

# re-use this session
session.run('''
    $hostname
    $.log(INFO,f'hostname is {$.stdout.strip()}')
''',{'INFO':INFO})

session.close()

Execution

python3 example.py