{
    "description": "Minimum required output for a LogMessage",
    "properties": {
        "application": {
            "description": "Application that raised the log.",
            "minLength": 1,
            "type": "string"
        },
        "datetime": {
            "_format": "date-time",
            "description": "The datetime this log event occured (ISO8601 combined date/time format (including timezone) for storage).",
            "type": "string"
        },
        "extra": {
            "description": "Any extra data to store alongside the log entry.",
            "type": [
                "string",
                "null"
            ]
        },
        "message": {
            "description": "Message for the log but use printf standard for arguments where required.",
            "minLength": 1,
            "type": "string"
        },
        "messageArgs": {
            "description": "Arguments to format into Message.",
            "minItems": 0,
            "type": "array",
            "_uniqueItems": false
        },
        "module": {
            "description": "Optional module in the application that raised the log.",
            "type": "string"
        },
        "severity": {
            "description": "The severity of this log message.",
            "enum": [
                "emergency",
                "alert",
                "critical",
                "error",
                "warning",
                "notice",
                "informational",
                "debug"
            ],
            "type": "string"
        },
        "source": {
            "description": "The identifier of the machine the log came from (IP, DNS name etc, any unique identifier).",
            "minLength": 1,
            "type": "string"
        }
    },
    "required": [
        "severity",
        "datetime",
        "source",
        "application",
        "message"
    ],
    "title": "com.xcitestudios.schema.Logging.LogMessage",
    "type": "object"
}