--- title: "Using the iOS SDK" slug: "elsa-elsa-1-5-3" tags: ["effective log search & analytics"] updated: 2026-09-17T09:23:53Z published: 2026-09-17T09:23:53Z canonical: "guide.ncloud-docs.com/elsa-elsa-1-5-3" --- > ## Documentation Index > Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Using the iOS SDK Available in Classic and VPC This chapter describes how to use Effective Log Search & Analytics NELO iOS SDK. Effective Log Search & Analytics NELO iOS supports the following devices and OS. ``` iPhone 3GS, 4, 4GS, 5, 5c, 5s, 6, 6 Plus, 6S, 6S Plus (armv7/armv7s/arm64) iOS 4.3 or later ``` ## Download Latest release versions are provided in Fat binary format. iOS includes the i386 simulator and binary for the arm7 (armv7/armv7s/arm64) device architecture. - [Download iOS SDK](/docs/en/elsa-elsa-1-5-3) ## API list "NeloLog" class provides the following APIs. ``` // Default NeloLog init method + (bool) init:(NSString *)server onPort:(int)port ofProjectName:(NSString*)appName withProjectVersion:(NSString*)appVersion; + (bool) init:(NSString *)server onPort:(int)port ofProjectName:(NSString*)appName withProjectVersion:(NSString*)appVersion forUserId:(NSString*)userId; + (bool) init:(NSString *)server onPort:(int)port byProtocol:(NeloLogProtocol)protocol ofProjectName:(NSString*)appName withProjectVersion:(NSString*)appVersion forUserId:(NSString*)userId; // send log method + (void) debug:(NSString*)errorCode withMessage:(NSString*)message; + (void) error:(NSString*)errorCode withMessage:(NSString*)message; + (void) fatal:(NSString*)errorCode withMessage:(NSString*)message; + (void) info:(NSString*)errorCode withMessage:(NSString*)message; + (void) warn:(NSString*)errorCode withMessage:(NSString*)message; + (void) debug:(NSString*)errorCode withMessage:(NSString*)message atLocation:(NSString*)location; + (void) error:(NSString*)errorCode withMessage:(NSString*)message atLocation:(NSString*)location; + (void) fatal:(NSString*)errorCode withMessage:(NSString*)message atLocation:(NSString*)location; + (void) info:(NSString*)errorCode withMessage:(NSString*)message atLocation:(NSString*)location; + (void) warn:(NSString*)errorCode withMessage:(NSString*)message atLocation:(NSString*)location; + (void) setUserId:(NSString*)userId; + (void) setLogType:(NSString*)logType; + (void) setLogSource:(NSString*) logSource; + (void) setCrashBlock:(void (^)(void))block; + (void) setLogLevelFilter:(NSString*)logLevelFilter; + (void) setNeloSendMode:(NSString*)sendMode; + (void) enableClientSideSymbolication:(bool)enable; + (NSArray *) getReservedFields; + (NSDictionary *) getNeloSendMode; + (NSDictionary *) getNeloLogLevel; ``` ## How to use NELO SDK ### Add Nelo SDK Framework 1. Add NELO2SDK.framework and CrashReporter.framework to "Frameworks". ![elsa-1-4-2_en(2).png](https://cdn.document360.io/6998976f-9d95-4df8-b847-d375892b92c2/Images/Documentation/elsa-1-4-2_en(2).png?sv=2026-02-06&spr=https&st=2026-11-14T05%3A36%3A41Z&se=2026-11-14T06%3A36%3A41Z&sr=c&sp=r&sig=jvHrAS14XI8Gx3q889%2BNE3eRXQ3tmN5FvbhrJQ%2FHcRI%3D) [Figure - NELO iOS SDK added to Framweorks] 1. Add the following system framework to "Link Binary With Libraries" in "Build Phases". ``` UIKit.framework SystemConfiguration.framework CoreTelephony.framework Foundation.framework ``` ![elsa-1-4-3_en(2).png](https://cdn.document360.io/6998976f-9d95-4df8-b847-d375892b92c2/Images/Documentation/elsa-1-4-3_en(2).png?sv=2026-02-06&spr=https&st=2026-11-14T05%3A36%3A41Z&se=2026-11-14T06%3A36%3A41Z&sr=c&sp=r&sig=jvHrAS14XI8Gx3q889%2BNE3eRXQ3tmN5FvbhrJQ%2FHcRI%3D) [Figure - System Framework added to Build Phases] ## API detailed description ### Initialization function ``` // Default NeloLog init method + (bool) init:(NSString *)server ofProjectName:(NSString*)appName withProjectVersion:(NSString*)appVersion; + (bool) init:(NSString *)server ofProjectName:(NSString*)appName withProjectVersion:(NSString*)appVersion forUserId:(NSString*)userId; ``` Note From SDK Version 0.32, the onPort, byProtocol parameter has been removed. **Parameters** * server : The address of the collection server of Effective Log Search & Analytics (see Transport Server below) * appName : Project ID registered in Effective Log Search & Analytics * appVersion : The version of the App to be sent to Effective Log Search & Analytics. Use this version to map symbolic files during Symbolization. * userId : User's ID information **Transport server** iOS SDK sends logs using HTTPS protocol. - Collector server address - elsa-col.ncloud.com ### Log transfer ``` // send log method + (void) debug:(NSString*)errorCode withMessage:(NSString*)message; + (void) error:(NSString*)errorCode withMessage:(NSString*)message; + (void) fatal:(NSString*)errorCode withMessage:(NSString*)message; + (void) info:(NSString*)errorCode withMessage:(NSString*)message; + (void) warn:(NSString*)errorCode withMessage:(NSString*)message; + (void) debug:(NSString*)errorCode withMessage:(NSString*)message atLocation:(NSString*)location; + (void) error:(NSString*)errorCode withMessage:(NSString*)message atLocation:(NSString*)location; + (void) fatal:(NSString*)errorCode withMessage:(NSString*)message atLocation:(NSString*)location; + (void) info:(NSString*)errorCode withMessage:(NSString*)message atLocation:(NSString*)location; + (void) warn:(NSString*)errorCode withMessage:(NSString*)message atLocation:(NSString*)location; ``` **Parameters** - errorCode : Mapped to NELO errorCode field. Limited to length (128 characters). - message : Mapped to NELO body field. No Limited to length (Limited to full log capacity). - location : Mapped to NELO location field. The error occurrence location being delivered. **How to use** ``` [NeloLog info:@"ErrorCode" withMessage:@"Message"]; ``` ### Other functions ``` + (void) setUserId:(NSString*)userId; + (void) setLogType:(NSString*)logType; + (void) setLogSource:(NSString*) logSource; + (void) setCrashBlock:(void (^)(void))block; + (void) setLogLevelFilter:(NSString*)logLevelFilter; + (void) setNeloSendMode:(NSString*)sendMode; // Client Side Symbolication + (void) enableClientSideSymbolication:(bool)enable; ``` **setCrashBlock** - Crash Callback function - If you write a code to be executed when a crash occurs in a block function, the code will be run and delivered upon crash transmission after the crash occurs. - Code example ``` [NeloLog setCrashBlock:^{ NSLog(@"crashed"); [NeloLog setCustomField:@"MyValue" forKey:@"MyKey"]; }]; ``` **setLogLevelFilter** - A function that sets a log level to send logs with a higher grade than a specific log level - Only the levels defined below can be set, and only the logs with levels above the set level are sent. - DEBUG < INFO < WARN < ERROR < FATAL - The value is defined by the constant value below. - NELO2_LOGLEVEL_DEBUG - NELO2_LOGLEVEL_INFO - NELO2_LOGLEVEL_WARN - NELO2_LOGLEVEL_ERROR - NELO2_LOGLEVEL_FATAL - The default value is DEBUG. - Code example ``` [NeloLog setLogLevelFilter:NELO2_LOGLEVEL_WARN]; ``` **setNeloSendMode** - The IOS SDK supports the following transmission modes. - ALL: Send logs when connected to a network. - WIFI: Send logs only when connected to WIFI. - The default value is ALL **enableClientSideSymbolication** - Set whether the symbolication is performed on a client. - The default values are as follows. - IOS SDK: false (A client does not perform symbolication.) - MAC SDK: true (A client performs symbolication.) - When a client performs symbolication, there is a slight delay when an app is stopped in the event of a crash occurred. ## Effective Log Search & Analytics iOS SDK default usage example ``` NSString* appID = @"02b96c3d8bbe_elsa-test"; NSString* appVer= @"1.0.0"; NSString* serverAddr = @"elsa-col.ncloud.com"; //Effective Log Search & Analytics collector server address int serverPort = 10006; //Effective Log Search & Analytics collector server port NSString* userID = @"tester"; //User ID // Nelo Init [NeloLog init:serverAddr onPort:serverPort ofProjectName:appID withProjectVersion:appVer forUserId:userID]; // Send Nelo log [NeloLog info:@"ErrorCode" withMessage:@"Message"]; [NeloLog error:@"ErrorCode" withMessage:@"Message" atLocation:@"test loc"]; ``` ## FAQ ### 1. Where do I get dSYMs (Symbols) from my Bitcode enabled app? You can receive it from Xcode or iTunes Connect. - When using iTunes Connect to download Debug Symbols, select the desired version from the build list of apps under "My Apps". Select "Download dSYM" to download.