             "deviceType": self.deviceType,
             "deviceVendorID": self.deviceVendorID,
             "deviceAdvertisingID": self.deviceAdvertisingID,
+            "logKitVersion": self.logKitVersion,
         ]
     }
 

    public let threadID: String
    /// The name of the thread from which the log entry was created.
    public let threadName: String
    /// Indicates whether the log entry was created on the main thread.
    public let isMainThread: Bool
    /// The version of the LogKit framework that generated this entry.
    public let logKitVersion: String = LK_LOGKIT_VERSION

    public let osVersionString: String = LK_DEVICE_OS.decription
    public let osMajorVersion: Int = LK_DEVICE_OS.majorVersion
    public let osMinorVersion: Int = LK_DEVICE_OS.minorVersion
    public let osPatchVersion: Int = LK_DEVICE_OS.patchVersion
    public let osBuildVersion: String = LK_DEVICE_OS.buildVersion
    public let bundleID: String = LK_BUNDLE_ID
    public let deviceModel: String = LK_DEVICE_MODEL
    public let deviceType: String = LK_DEVICE_TYPE
    public let deviceVendorID: String = LK_DEVICE_IDS.vendor
    public let deviceAdvertisingID: String = LK_DEVICE_IDS.advertising

    /// The name of the source file from which the log entry was created.
    public var fileName: String { return (self.filePath as NSString).lastPathComponent }
    
}


/// Private extension to facilitate JSON serialization.
internal extension LXLogEntry {
    /// Returns log entry as a dictionary. Will replace any top-level `userInfo` items that use one of the reserved names.
    internal func asMap() -> [String: AnyObject] {
        return [
            "userInfo": self.userInfo,
            "message": self.message,
            "level": self.level,
            "timestamp": self.timestamp,
            "dateTime": self.dateTime,

// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.


/**
The details of a log entry.

- parameters:
  - message: The message provided.
  - userInfo: A dictionary of additional values to be provided to the entry formatter.
  - level: The name of the entry's priority level.
  - timestamp: The number of seconds since the Unix epoch (midnight 1970-01-01 UTC).
  - dateTime: The entry's timestamp as a string formatted by an endpoint's `dateFormatter`.
  - functionName: The function from which the log entry was created.
  - fileName: The name of the source file from which the log entry was created.
  - filePath: The absolute path of the source file from which the log entry was created.
  - lineNumber: The line number in the file from which the log entry was created.
  - columnNumber: The column number in the file from which the log entry was created.
  - threadID: The ID of the thread from which the log entry was created.
  - threadName: The name of the thread from which the log entry was created.
  - isMainThread: An indicator of whether the log entry was created on the main thread.
  - osVersionString: A description of the operating system, including its name and version.
  - osMajorVersion: The major version number of the operating system.
  - osMinorVersion: The minor version number of the operating system.
  - osPatchVersion: The patch version number of the operating system.
  - osBuildVersion: The build version string of the operating system.
  - bundleID: The bundle ID of the running application.
  - deviceModel: The model of the device running the application.
  - deviceType: The type of the device running the application.
  - deviceVendorID: The vendor ID (if available) of the device running the application.
  - deviceAdvertisingID: The advertising ID (if available) of the device running the application.
  - logKitVersion: The version of the LogKit framework that generated this entry.
*/
public struct LXLogEntry {
    /// The message provided.
    public let message: String
