コード例 #1
0
        private static StringBuilder WriteHelper(OracleTraceTag traceTag, OracleTraceClassName className, OracleTraceFuncName funcName, params string[] message)
        {
            StringBuilder stringBuilder = new StringBuilder();
            string        str           = string.Empty;
            string        str2          = string.Empty;
            bool          flag          = false;

            if (OracleTraceTag.Error == (traceTag & OracleTraceTag.Error))
            {
                traceTag &= (OracleTraceTag)(-268435457);
                str2      = " (ERROR)";
                flag      = true;
            }
            else if (OracleTraceTag.Entry == (traceTag & OracleTraceTag.Entry))
            {
                traceTag &= (OracleTraceTag)(-257);
                str2      = " (ENTRY)";
                flag      = true;
            }
            else if (OracleTraceTag.Exit == (traceTag & OracleTraceTag.Exit))
            {
                traceTag &= (OracleTraceTag)(-513);
                str2      = " (EXIT)";
                flag      = true;
            }
            switch (traceTag)
            {
            case OracleTraceTag.SQL:
                str = " (SQL)";
                break;

            case OracleTraceTag.Environment:
                str = " (ENV)";
                break;

            case OracleTraceTag.Sqlnet:
                str = " (SQLNET)";
                break;

            case OracleTraceTag.Tnsnames:
                str = " (TNSNAMES)";
                break;

            case OracleTraceTag.Version:
                str = " (VER)";
                break;

            case OracleTraceTag.Map:
                str = " (MAP)";
                break;

            case OracleTraceTag.Connection:
                str = " (CONN)";
                break;
            }
            stringBuilder.AppendFormat(GetTimeInfo());
            stringBuilder.AppendFormat("{0,-10} ", str + str2);
            stringBuilder.AppendFormat(className.ToString() + "." + funcName.ToString() + "() ");
            if (message != null && message.Length != 0)
            {
                stringBuilder.AppendFormat(": ");
                if (flag)
                {
                    stringBuilder.Append(" ");
                }
                if (OracleTraceTag.SQL == traceTag)
                {
                    message[0] = message[0].Replace(Environment.NewLine, " ");
                }
                string[] array = null;
                if (message.Length > 1)
                {
                    array = new string[message.Length];
                    Array.Copy(message, 1, array, 0, message.Length - 1);
                }
                if (array != null)
                {
                    string   format = message[0];
                    object[] args   = array;
                    stringBuilder.AppendFormat(format, args);
                }
                else
                {
                    stringBuilder.Append(message[0]);
                }
            }
            return(stringBuilder);
        }
コード例 #2
0
        /// <summary>
        /// 写日志
        /// </summary>
        /// <param name="logger">日志对象</param>
        /// <param name="logLevel">日志级别</param>
        /// <param name="traceTag">追踪标签</param>
        /// <param name="className">追踪的类名</param>
        /// <param name="funcName">追踪函数名</param>
        /// <param name="message">追踪的消息</param>
        internal static void Write(IDiagnosticsLogger <TLoggerCategory> logger, LogLevel logLevel, OracleTraceTag traceTag, OracleTraceClassName className, OracleTraceFuncName funcName, params string[] message)
        {
            if (logger != null)
            {
                if (!ConfigHelper.configItemsTraced)
                {
                    lock (ConfigHelper.locker)
                    {
                        if (!ConfigHelper.configItemsTraced)
                        {
                            foreach (string configItem in ConfigHelper.configItems)
                            {
                                StringBuilder stringBuilder = new StringBuilder();
                                stringBuilder.Append(GetTimeInfo());
                                stringBuilder.Append(" (CONFIG) ");
                                stringBuilder.Append(configItem);

                                if (Check.IsTraceEnabled(logger?.Logger))
                                {
                                    logger.Logger.LogTrace(stringBuilder.ToString());
                                }
                            }
                            ConfigHelper.configItemsTraced = true;
                        }
                    }
                }
                StringBuilder stringBuilder2 = WriteHelper(traceTag, className, funcName, message);
                lock (ConfigHelper.locker)
                {
                    switch (logLevel)
                    {
                    case LogLevel.Information:
                        logger.Logger.LogInformation(stringBuilder2.ToString());
                        break;

                    case LogLevel.Warning:
                        logger.Logger.LogWarning(stringBuilder2.ToString());
                        break;

                    case LogLevel.Critical:
                        logger.Logger.LogCritical(stringBuilder2.ToString());
                        break;

                    case LogLevel.Debug:
                        logger.Logger.LogDebug(stringBuilder2.ToString());
                        break;

                    case LogLevel.Error:
                        logger.Logger.LogError(stringBuilder2.ToString());
                        break;

                    case LogLevel.Trace:
                        logger.Logger.LogTrace(stringBuilder2.ToString());
                        break;
                    }
                }
            }
        }