public static void LogMessage(this DbConnection connection, string message, string level = "I", string program = null, DbTransaction transaction = null)
        {
            if (connection is null)
            {
                throw new ArgumentNullException(nameof(connection));
            }
            if (message is null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            if (program == null)
            {
                program = CruiseDatastore.GetCallingProgram();
            }

            Logger.Log(message, "LogMessage", LogLevel.Info);

            connection.ExecuteNonQuery("INSERT INTO MessageLog (Program, Message, Level, Date, Time) " +
                                       "VALUES " +
                                       "(@p1, @p2, @p3, @p4, @p5)",
                                       new object[] {
                program,
                message,
                level,
                DateTime.Now.ToString("yyyy/MM/dd"),
                DateTime.Now.ToString("HH:mm")
            }
                                       , transaction
                                       );
        }