Beispiel #1
0
        // -------------------------------------------------
        //                                       SQL Logging
        //                                       -----------
        protected virtual void LogSql(Object[] args, Type[] argTypes)
        {
            // [SqlLogHandler]
            SqlLogHandler sqlLogHandler       = GetSqlLogHander();
            bool          existsSqlLogHandler = sqlLogHandler != null;

            // [SqlResultHandler]
            SqlResultHandler sqlResultHandler       = GetSqlResultHander();
            bool             existsSqlResultHandler = sqlResultHandler != null;

            // [SqlLogRegistry]
            InternalSqlLogRegistry sqlLogRegistry = InternalSqlLogRegistryLocator.Instance;
            bool existsSqlLogRegistry             = sqlLogRegistry != null;

            if (IsLogEnabled() || existsSqlLogHandler || existsSqlResultHandler || existsSqlLogRegistry)
            {
                String displaySql = GetCompleteSql(args);
                if (IsLogEnabled())
                {
                    Log((IsContainsLineSeparatorInSql() ? GetLineSeparator() : "") + displaySql);
                }
                if (existsSqlLogHandler)   // DBFlute provides
                {
                    sqlLogHandler.Invoke(this.Sql, displaySql, args, argTypes);
                }
                if (existsSqlLogRegistry)   // S2Container provides (But Actually DBFlute provides at CSharp)
                {
                    sqlLogRegistry.Add(CreateInternalSqlLog(displaySql, args, argTypes));
                }
                PutObjectToMapContext("df:DisplaySql", displaySql);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 写入SqlLog日志
        /// </summary>
        /// <param name="log"></param>
        public static async Task WriteSqlLog(SqlLog log)
        {
            SqlLogHandler handler = new SqlLogHandler(log.OperateSql, log.EndDateTime, log.ElapsedTime, log.Parameter);

            handler.WriteLog();
        }