详情页标题前

阿里云日志服务SLS.NET Core SDK快速入门-云淘科技

详情页1

本文介绍如何快速使用日志服务.NET Core SDK完成常见操作,包括创建项目(Project)、创建日志库(Logstore)、写入日志和查询日志等。

前提条件

  • 已创建RAM用户并完成授权。具体操作,请参见创建RAM用户并完成授权。

  • 已配置环境变量ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET。具体操作,请参见配置环境变量。

    重要

    • 阿里云账号的AccessKey拥有所有API的访问权限,建议您使用RAM用户的AccessKey进行API访问或日常运维。

    • 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。

  • 已完成.NET Core SDK安装。更多信息,请参见安装.NET Core SDK.

示例代码

本示例中,创建一个SLSQuickStart.cs文件,并调用接口分别完成创建Project、创建Logstore、创建索引、写入日志数据和查询日志数据。示例如下:

using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Aliyun.Api.LogService;
using Aliyun.Api.LogService.Domain.Log;
using Aliyun.Api.LogService.Domain.LogStore.Index;
using Aliyun.Api.LogService.Infrastructure.Protocol;

namespace Test
{
    class SLSQuickStart
    {
        // 日志服务的服务接入点。此处以杭州为例,其它地域请根据实际情况填写。
        private static string endpoint = "cn-hangzhou.log.aliyuncs.com";
        // 本示例从环境变量中获取AccessKey ID和AccessKey Secret。
        private static string accessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID");
        private static string accessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
        // Project名称。
        private static string project = "aliyun-test-project";
        // Logstore名称。
        private static string logstore = "aliyun-test-logstore";
        // 创建日志服务Client。
        private static ILogServiceClient client = BuildSimpleClient();

        static async Task Main(string[] args)
        {
            // 创建Project。
            var proRes = await client.CreateProjectAsync(project, "des");
            check(proRes);
            Console.WriteLine("Create project success");
            Thread.Sleep(120 * 1000);
            
            // 创建Logstore。
            var storeRes = await client.CreateLogStoreAsync(logstore, 3, 2);
            check(storeRes);
            Console.WriteLine("Create logstore success");
            Thread.Sleep(10 * 1000);
            
            // 为Logstore创建索引。
            var indRes = await client.CreateIndexAsync(logstore, new IndexLineInfo(new[] {' ', ','}));
            check(indRes);
            Console.WriteLine("Create Index success");
            Thread.Sleep(60 * 1000);

            // 向Logstore写入数据。
            await PostLogs();
            Console.WriteLine("Post logs success");
            Thread.Sleep(3000);
            // 查询日志。
            await GetLogs();
        }

        public static async Task GetLogs()
        {
            var logsRes = await client.GetLogsAsync(logstore, DateTimeOffset.UtcNow.AddMinutes(-1),
                DateTimeOffset.UtcNow,
                "test", "", 100, 0);
            check(logsRes);
            foreach (var log in logsRes.Result.Logs)
            {
                foreach (var key in log.Keys)
                {
                    log.TryGetValue(key, out var value);
                    Console.WriteLine(key + " : " + value);
                }

                Console.WriteLine("======");
            }
        }

        public static async Task PostLogs()
        {
            for (int i = 0; i < 10; i++)
            {
                var response = await client.PostLogStoreLogsAsync(logstore, new LogGroupInfo
                {
                    Topic = "test",
                    Source = "49.111.66.122",
                    LogTags = new Dictionary
                    {
                        {"Tag1", "t1"},
                        {"Tag2", String.Empty},
                        {"Tag3", "t3"}
                    },
                    Logs = new List
                    {
                        new LogInfo
                        {
                            Time = DateTimeOffset.Now,
                            Contents = new Dictionary
                            {
                                {"name", "zs"},
                                {"age", "18"},
                                {"address", String.Empty}
                            }
                        }
                    }
                });
                check(response);
            }
        }

        public static ILogServiceClient BuildSimpleClient()
            => LogServiceClientBuilders.HttpBuilder
                .Endpoint(endpoint, project)
                .Credential(accessKeyId, accessKeySecret)
                .Build();

        public static void check(IResponse res)
        {
            if (!res.IsSuccess)
            {
                throw new ApplicationException(res.Error.ErrorMessage);
            }
        }
    }
}

更多示例代码,请参见Aliyun Log .NET Core SDK。

返回结果

返回结果示例如下:

Create project success
Create logstore success
Create Index success
Post logs success
name : zs
age : 18
address :
__topic__ : test
__source__ : 203.0.XX.XX
__tag__:Tag1 : t1
__tag__:Tag2 :
__tag__:Tag3 : t3
__time__ : 1627970965
======
......

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/165889.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云对象存储OSSPresto以EMR集群的方式查询OSS-HDFS服务中的数据-云淘科技

    本文介绍Presto如何以EMR集群的方式查询OSS-HDFS服务中的数据。 前提条件 已创建EMR-3.42.0及以上版本或EMR-5.8.0及以上版本的集群。具体步骤,请参见创建集群。 已开通并授权访问OSS-HDFS服务。具体操作,请参见开通并授权访问OSS-HDFS服务。 操作步骤 登录EMR集群。 登录EMR on ECS控制台。 单击创建的EMR…

    阿里云对象存储 2023年12月10日
  • 阿里云负载均衡概述-云淘科技

    配置HTTPS监听,您可以直接使用SSL证书服务中的证书或者将所需的第三方签发的服务器证书和CA证书上传到传统型负载均衡CLB(Classic Load Balancer)。 CLB支持两种来源的证书: 在阿里云SSL证书服务中签发或托管的证书:从阿里云SSL证书服务选择,可实现证书到期提醒和一键续期。 暂未支持客户端CA证书。 第三方签发的证书:上传第三方…

    阿里云负载均衡 2023年12月10日
  • 阿里云日志服务SLS接入OpenCensus Trace数据-云淘科技

    您可以通过OpenCensus SDK将OpenCensus平台上的Trace数据发送至OpenTelemetry Collector,再通过OpenTelemetry Collector转发至日志服务。本文介绍通过OpenTelemetry Collector转发Trace数据到日志服务的操作步骤。 前提条件 已创建Trace实例。更多信息,请参见创建Tr…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云RDS数据库索引推荐(index_adviser)-云淘科技

    索引推荐(index_adviser)可以帮助您确定应该对哪些列编制索引,以提高指定工作负载中的性能。索引推荐仅识别B树索引类型(单列或复合),不识别可提高性能的其他索引类型,例如GIN、GiST、Hash等。 前提条件 实例内核小版本为20230830或以上。 重要 20230830内核小版本之前已支持此插件,但为了规范插件管理,提升RDS Postgre…

    阿里云数据库 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云日志服务SLS接入OpenTelemetry Trace数据-云淘科技

    您可以通过直接发送方式或OpenTelemetry Collector转发方式,将OpenTelemetry平台上的Trace数据发送到日志服务。 前提条件 已创建Trace实例。更多信息,请参见创建Trace实例。 直接发送 使用OpenTelemetry协议直接发送Trace数据到日志服务时,您需要在OpenTelemetry平台上配置接入点信息和鉴权信…

    阿里云日志服务SLS 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。