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

Prev Next

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.

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
[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
[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.