func application()

in XcodeSwift/AliyunLogSwift/AppDelegate.swift [26:135]


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        let utils = DemoUtils.shared
        
        let dict = ProcessInfo.processInfo.environment
        if (dict["PCONFIG_ENABLE"] != nil) {
            utils.endpoint = dict["PEND_POINT"] ?? ""
            utils.project = dict["PLOG_PROJECT"] ?? ""
            utils.logstore = dict["PLOG_STORE"] ?? ""
            utils.pluginAppId = dict["PPLUGIN_APPID"] ?? ""
            utils.accessKeyId = dict["PACCESS_KEYID"] ?? ""
            utils.accessKeySecret = dict["PACCESS_KEY_SECRET"] ?? ""
            utils.secKey = dict["PNETWORK_SECKEY"] ?? ""
        }
        
//        SLSLogV("endpoint: %@", utils.endpoint)
//        SLSLogV("project: %@", utils.project)
//        SLSLogV("logstore: %@", utils.logstore)
//        SLSLogV("pluginAppId: %@", utils.pluginAppId)
//        SLSLogV("accessKeyId: %@", utils.accessKeyId)
//        SLSLogV("accessKeySecret: %@", utils.accessKeySecret)
        
        let credentials = SLSCredentials()
        credentials.endpoint = "https://cn-hangzhou.log.aliyuncs.com"
        credentials.project = "yuanbo-test-1"
        credentials.accessKeyId = utils.accessKeyId
        credentials.accessKeySecret = utils.accessKeySecret
        credentials.instanceId = "ios-dev-ea64"
        
        let networkDiagnosisCredentials = credentials.createNetworkDiagnosisCredentials()
        networkDiagnosisCredentials.secretKey = utils.secKey;
        networkDiagnosisCredentials.siteId = "cn";
        networkDiagnosisCredentials.putExtension("value", forKey: "key")
        networkDiagnosisCredentials.endpoint = "https://cn-hangzhou.log.aliyuncs.com"
        networkDiagnosisCredentials.project = "zaiyun-test5"
        
        let tracerCredentials = credentials.createTraceCredentials()
        tracerCredentials.instanceId = "sls-mall"
        tracerCredentials.endpoint = "https://cn-beijing.log.aliyuncs.com"
        tracerCredentials.project = "qs-demos"
        
        SLSCocoa.sharedInstance().initialize(credentials) { configuration in
            configuration.spanProvider = SpanProvider()
            configuration.enableTrace = true
            configuration.enableNetworkDiagnosis = true
//            configuration.enableInstrumentNSURLSession = true
//            configuration.spanProvider = SpanProvider()
        }
        
//        URLSessionInstrumentation(configuration: URLSessionInstrumentationConfiguration(shouldInstrument: { req in
//            if (req.url?.host?.contains("log.aliyuncs.com") ?? false) == true {
//                return false
//            }
//            return true
//        }))
        
        SLSCocoa.sharedInstance().registerCredentialsCallback { feature, result in
            NSLog("feature: %@, result: %@", feature, result)
            
            if (result == "LogProducerParametersInvalid" || result == "LogProducerSendUnauthorized") {
                // 请求新的token,然后把新的token更新到sdk
                let credentials = SLSCredentials()
                credentials.accessKeyId = utils.accessKeyId
                credentials.accessKeySecret = utils.accessKeySecret
//                credentials.securityToken = utils.
                
                // 不要忘记更新到sdk
                SLSCocoa.sharedInstance().setCredentials(credentials)
            }
        }
        
        let diagnosis = SLSNetworkDiagnosis.sharedInstance()
//        let dnsRequest = SLSDnsRequest()
//        dnsRequest.domain = "www.aliyun.com"
//        dnsRequest.context = "dns-test"
//        diagnosis.dns2(dnsRequest) { response in
//            NSLog("dns result: %@", response.content)
//        }

//        let httpRequest = SLSHttpRequest()
//        httpRequest.domain = "https://www.aliyun.com"
//        httpRequest.context = "http-test"
//        diagnosis.http2(httpRequest) { response in
//            NSLog("http result: %@", response.content)
//        }

//        let pingRequest = SLSPingRequest()
//        pingRequest.domain = "www.aliyun.com"
//        pingRequest.context = "ping-test"
//        diagnosis.ping2(pingRequest) { response in
//            NSLog("ping result: %@", response.content)
//        }

//        let tcppingRequest = SLSTcpPingRequest()
//        tcppingRequest.domain = "www.aliyun.com"
//        tcppingRequest.port = 80
//        tcppingRequest.context = "tcpping-test"
//        diagnosis.tcpPing2(tcppingRequest) { response in
//            NSLog("tcpping result: %@", response.content)
//        }

        let mtrRequest = SLSMtrRequest()
        mtrRequest.domain = "www.aliyun.com"
        mtrRequest.context = "mtr-test"
        diagnosis.mtr2(mtrRequest) { response in
            NSLog("mtr result: %@", response.content)
        }
        
        return true
    }