Write the Job Status to the Windows Application Log

THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

This topic describes how to configure Microsoft SQL Server Agent in SQL Server 2017 to write job status to the Windows application event log by using SQL Server Management Studio, Transact-SQL, or SQL Server Management Objects.

Job responses ensure that database administrators know when jobs complete and how frequently they run. Typical job responses include:

  • Notifying the operator by using e-mail, electronic paging, or a net send message. Use one of these job responses if the operator must perform a follow-up action. For example, if a backup job completes successfully, the operator must be notified to remove the backup tape and store it in a safe location.

  • Writing an event message to the Windows application log. You can use this response only for failed jobs.

  • Automatically deleting the job. Use this job response if you are certain that you do not need to rerun this job.

In This Topic

Before You Begin


For detailed information, see Implement SQL Server Agent Security.

Using SQL Server Management Studio

To write job status to the Windows application log

  1. In Object Explorer, connect to an instance of the SQL Server Database Engine, and then expand that instance.

  2. Expand SQL Server Agent, expand Jobs, right-click the job you want to edit, and then click Properties.

  3. Select the Notifications page.

  4. Check Write to Windows application event log, and choose one of the following:

    • ClickWhen the job succeedsto log the job status when the job completes successfully.

    • ClickWhen the job failsto log the job status when the job completes unsuccessfully.

    • ClickWhen the job completes to log the job status regardless of completion status.

Using SQL Server Management Objects

To write job status to the Windows application log

Call the EventLogLevel property of the Job class by using a programming language that you choose, such as Visual Basic, Visual C#, or PowerShell.

The following code example sets the job to generate an operating system event log entry when the job execution finishes.


$srv = new-object Microsoft.SqlServer.Management.Smo.Server("(local)")  
$jb = new-object Microsoft.SqlServer.Management.Smo.Agent.Job($srv.JobServer, "Test Job")  
$jb.EventLogLevel = [Microsoft.SqlServer.Management.Smo.Agent.CompletionAction]::Always