...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version="1.0" encoding="ISO-8859-1"?> <job process_class="my_Agent" stop_on_error="no"> <settings > <log_level ><![CDATA[debug1]]></log_level> </settings> <script language="powershell"> <![CDATA[ # Use Write-Host, Write-Output or Echo cmdlets to write to the JobScheduler log Write-OutputHost "job: this is some output" echoWrite-Output "job: this is some output" # This does not work: Use of Write-Host cmdlet is not applicable # Write-Hostecho "job: this is some output" # Standard PowerShell verbose setting is considered for log output $VerbosePreference = "Continue" Write-Verbose "job: this is some verbose output" # Standard # In addition the current log level of the job has to be set, i.e. log level "debug1" or higher logs verbose output Write-Verbose "job: this is some verbose output" # Standard PowerShell debug setting is considered for log output $DebugPreference = "Continue" # In addition the current log level of the job has to be set, i.e.g. log level "debug1debug3" or higher logs debug messages Write-Debug "job: this is some debug output" # creates a warning for the job Write-Warning "job: this is a warning" # can be used to throw an error # WriteWrite-Error "job: this is an error" ]]> </script> <run_time /> </job> |
Explanations
- Using PowerShell standard output
- Use of the
Write-Host
,Write-Output
andEcho
cmdlets is applicable.Use of theWrite-Host
cmdlet is not applicable for PowerShell jobs as the cmdlet requires a PowerShell host console to be available (powershell.exe
), whereas JobScheduler runs PowerShell in a process without interaction.
- Use of the
- Using PowerShell verbose output
- The standard PowerShell verbosity setting is considered for log output if the job is configured for a log level
debug1
or higher. - Use
$VerbosePreference = "Continue"
- Subsequently use the
Write-Verbose
cmdlet.
- The standard PowerShell verbosity setting is considered for log output if the job is configured for a log level
- Using PowerShell debug messages
- The PowerShell debug setting is considered for log output in jobs if the job is configured for a log level
debug3
or higher. - Use
$DebugPreference
by use of$DebugPreference = "Continue"
In addition, the current log level of the job has to be set, e.g. log leveldebug1
will log debug messages.With the JobScheduler log level being switched toinfo
no debug output is written to the log file. With the JobScheduler log level being switched to
debug1
,debug2
, ...,debug9
then debug output is added to the logSubsequently use theWrite-Debug
cmdlet. - The PowerShell debug setting is considered for log output in jobs if the job is configured for a log level
- Using PowerShell Warnings
- Warnings are created by use of the
Write-Warning
cmdlet. Such warnings create corresponding warnings in the JobScheduler Master that are visible from the log and that might trigger a notification by mail.
- Warnings are created by use of the
- Using PowerShell Error Messages
- Use of the
Write-Error
cmdlet will create a job error that is visible from the log and that triggers subsequent actions as e.g. notification by mail, stopping the job, suspending an order etc.
- Use of the
...