/// <summary> /// 在 Project 下创建日志配置。 /// </summary> /// <param name="client">client实例。</param> /// <param name="configName">日志配置名称, Project 下唯一。</param> /// <param name="inputType">输入类型,现在只支持 file。</param> /// <param name="inputDetail">输入详情。</param> /// <param name="outputType">输出类型,现在只支持 LogService。</param> /// <param name="outputDetail">输出详情。</param> /// <param name="logSample">Logtail 配置日志样例,最大支持 1000 字节。</param> /// <param name="project">项目名,此参数将覆盖 client 中默认设置。</param> /// <returns>异步响应结果。</returns> /// <seealso cref="ILogServiceClient.CreateConfigAsync"/> public static Task <IResponse> CreateConfigAsync(this ILogServiceClient client, String configName, String inputType, ConfigInputDetailInfo inputDetail, String outputType, ConfigOutputDetailInfo outputDetail, String logSample = null, String project = null) => client.CreateConfigAsync(new CreateConfigRequest(configName, inputType, inputDetail, outputType, outputDetail) { LogSample = logSample, ProjectName = project });
/// <summary> /// 在 Project 下创建日志配置。 /// </summary> /// <param name="client">client实例。</param> /// <param name="configName">日志配置名称, Project 下唯一。</param> /// <param name="logstoreName"></param> /// <param name="logType">日志类型,现在只支持 common_reg_log。</param> /// <param name="logPath">日志所在的父目录,例如 /var/logs/。</param> /// <param name="filePattern">日志文件的Pattern,例如 access*.log。</param> /// <param name="localStorage">是否打开本地缓存,在服务端之间链路断开的情况下,本地可以缓存 1GB 日志。</param> /// <param name="timeFormat">日志时间格式, 如 %Y/%m/%d %H:%M:%S。</param> /// <param name="logBeginRegex">日志首行特征(正则表达式),由于匹配多行日志组成一条 log 的情况。</param> /// <param name="regex">日志对提取正则表达式。</param> /// <param name="key">日志提取后所生成的 Key。</param> /// <param name="filterKey">用于过滤日志所用到的 key,只有 key 的值满足对应 filterRegex 列中设定的正则表达式日志才是符合要求的。</param> /// <param name="filterRegex">和每个 filterKey 对应的正则表达式, filterRegex 的长度和 filterKey 的长度必须相同。</param> /// <param name="topicFormat">Topic 生成方式,支持以下四种类型: /// <list type="bullet"> /// <item><description>用于将日志文件路径的某部分作为 topic,如 /var/log/(.*).log。</description></item> /// <item><description>none,表示 topic 为空。</description></item> /// <item><description>default,表示将日志文件路径作为 topic。</description></item> /// <item><description>group_topic,表示将应用该配置的机器组 topic 属性作为 topic。</description></item> /// </list> /// </param> /// <param name="preserve">true 代表监控目录永不超时,false 代表监控目录 30 分钟超时,默认值为 true。</param> /// <param name="preserveDepth">当设置 preserve 为 false 时,指定监控不超时目录的深度,最大深度支持 3。</param> /// <param name="fileEncoding">支持两种类型:utf8、gbk。</param> /// <param name="logSample">Logtail 配置日志样例,最大支持 1000 字节。</param> /// <param name="project">项目名,此参数将覆盖 client 中默认设置。</param> /// <returns>异步响应结果。</returns> /// <seealso cref="ILogServiceClient.CreateConfigAsync"/> public static Task <IResponse> CreateFileToLogServiceConfigAsync(this ILogServiceClient client, String configName, String logstoreName, String logType, String logPath, String filePattern, Boolean localStorage, String timeFormat, String logBeginRegex, String regex, IEnumerable <String> key, IEnumerable <String> filterKey, IEnumerable <String> filterRegex, String topicFormat = null, Boolean preserve = ConfigInputDetailInfo.DefaultPreserve, Int32 preserveDepth = default, String fileEncoding = null, String logSample = null, String project = null) => client.CreateConfigAsync( configName, "file", new ConfigInputDetailInfo(logType, logPath, filePattern, localStorage, timeFormat, logBeginRegex, regex, key, filterKey, filterRegex) { TopicFormat = topicFormat, Preserve = preserve, PreserveDepth = preserveDepth, FileEncoding = fileEncoding }, "LogService", new ConfigOutputDetailInfo(logstoreName), logSample, project);