public object GetDetails([FromUri] string appenderName)
        {
            TableAppender tableAppender = TableService.Instance.GetTableAppender(appenderName);

            string name             = null;
            bool?  connected        = null;
            string connectionString = null;
            string tableName        = null;
            bool?  readOnly         = null;
            int    bufferSize       = 0;

            // TODO: log entry count, first datetime, latest datetime

            if (tableAppender != null)
            {
                name             = tableAppender.Name;
                connected        = tableAppender.IsConnected();
                connectionString = tableAppender.GetConnectionString();
                tableName        = tableAppender.TableName;
                readOnly         = tableAppender.ReadOnly;
                bufferSize       = tableAppender.BufferSize;
            }

            return(new
            {
                name = name,
                connected = connected,
                connectionString = connectionString,
                tableName = tableName,
                readOnly = readOnly,
                bufferSize = bufferSize
            });
        }
示例#2
0
        /// <summary>
        /// Helper to get (and cache) the cloud table associated with the supplied appender name
        /// </summary>
        /// <param name="appenderName">name of the log4net appender</param>
        /// <returns>the CloudTable for the supplied appender if found, otherwise null</returns>
        private CloudTable GetCloudTable(string appenderName)
        {
            // if not in local cache
            if (!this.appenderCloudTables.ContainsKey(appenderName))
            {
                TableAppender tableAppender = this.GetTableAppender(appenderName);

                if (tableAppender != null)
                {
                    CloudTable cloudTable = tableAppender.GetCloudTable();

                    if (cloudTable != null)
                    {
                        this.appenderCloudTables[appenderName] = cloudTable;
                    }
                    else
                    {
                        return(null);
                    }
                }
            }

            return(this.appenderCloudTables[appenderName]);
        }