How To Create SQL Server Audit Feature

As DBA Its very important to Audit your SQL Server Instance as much as administrating and monitoring it.
Below is the Piece of Code which will create a SQL Server Level Audit and also code to how to read the Audit logs.

--CREATE A SERVER AUDIT WITH FILE SPECIFICATION FIRST TO HOLD AUDITS
USE [master]
GO
CREATE SERVER AUDIT [MSSDTestAudit]
TO FILE 
(    FILEPATH = N'D:\MSSD_LAB\Audit'
    ,MAXSIZE = 5 MB
    ,MAX_ROLLOVER_FILES = 5
    ,RESERVE_DISK_SPACE = ON
)
WITH
(    QUEUE_DELAY = 1000
    ,ON_FAILURE = CONTINUE
)
GO
--ENABLE THE NEWLY CREATED AUDIT AS BY DEFAULT IT IS DISABLED
ALTER SERVER AUDIT [MSSDTestAudit] WITH (STATE = ON)
GO
--CREATE SERVER AUDIT SPECIFCATION SO AS TO WHAT ALL ACTIVITIES NEEDS TO BE AUDITED
--TO GET EVERY AUDIT ACTION THAT CAN BE REPORTED IN THE AUDIT LOG AND EVERY AUDIT 
--ACTION GROUP THAT CAN BE CONFIGURED AS PART OF SQL SERVER AUDIT 
--PLS USE THE SYSTEM VIEW SELECT * FROM SYS.DM_AUDIT_ACTIONS UNDER NAME COLUMN
USE [master]
GO
CREATE SERVER AUDIT SPECIFICATION [MSSDTestServerAuditSpecification]
FOR SERVER AUDIT [MSSDTestAudit]
ADD (FAILED_LOGIN_GROUP),
ADD (BACKUP_RESTORE_GROUP)
GO
--ENABLE THE NEWLY CREATED AUDIT SPECIFICATION AS BY DEFAULT IT IS DISABLED
ALTER SERVER AUDIT SPECIFICATION [MSSDTestServerAuditSpecification]  WITH (STATE = ON)
GO
--READ THE AUDIT USING T-SQL, NOTE THIS IS A TRICKY WAY.
--YOU CAN READ THIS USING GUI BY RIGHT CLICKING ON AUDIT AND VIEW AUDIT LOGS
USE master
GO
--CREATE VARIABLE TO HOLD THE LOCATION OF AUDIT FILE
DECLARE @MyAuditFile NVARCHAR(MAX)
select @MyAuditFile = log_file_path+'*_'+CAST(AUDIT_GUID AS NVARCHAR(MAX))+'*' from sys.server_file_audits
--READ THE AUDIT FILE USING T-SQL
SELECT 
EVENT_TIME,ACTION_ID,SUCCEEDED,SESSION_ID,CLASS_TYPE,
SESSION_SERVER_PRINCIPAL_NAME,SERVER_PRINCIPAL_NAME,
SERVER_INSTANCE_NAME,DATABASE_NAME,SCHEMA_NAME,OBJECT_NAME,
[STATEMENT] FROM 
FN_GET_AUDIT_FILE(@MYAUDITFILE,NULL,NULL) 
ORDER BY EVENT_TIME DESC,SEQUENCE_NUMBER