{"id":23649472,"url":"https://github.com/payneteasy/remotelogger","last_synced_at":"2026-07-02T03:32:04.292Z","repository":{"id":62452858,"uuid":"69054649","full_name":"payneteasy/RemoteLogger","owner":"payneteasy","description":"Remote Logger for ios in objective-c","archived":false,"fork":false,"pushed_at":"2023-03-17T17:13:32.000Z","size":45,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-01-28T17:04:26.833Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/payneteasy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-09-23T19:27:29.000Z","updated_at":"2023-03-14T22:27:04.000Z","dependencies_parsed_at":"2022-11-01T22:32:18.830Z","dependency_job_id":null,"html_url":"https://github.com/payneteasy/RemoteLogger","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/payneteasy%2FRemoteLogger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/payneteasy%2FRemoteLogger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/payneteasy%2FRemoteLogger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/payneteasy%2FRemoteLogger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/payneteasy","download_url":"https://codeload.github.com/payneteasy/RemoteLogger/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239605123,"owners_count":19666998,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-28T15:38:19.821Z","updated_at":"2025-10-31T14:30:46.915Z","avatar_url":"https://github.com/payneteasy.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RemoteLogger\n\n[![Build Status](https://travis-ci.org/payneteasy/RemoteLogger.svg?branch=master)](https://travis-ci.org/payneteasy/RemoteLogger)\n\nRemoteLogger is an Objective-C library which helps you to send logs to your HTTPS server.\n\nWhen we start to develop new application it is always requiring us to send debug messages to a server.\nWe should deal with the remote logging.\nWhen we collect the debug messages we should always thinking about resource constraints.\n\nPreviously we had a bad experience using an UDP transfer.\nIt's unbelievable to always have all log messages on a server via UDP transfer,\nso we came up with an HTTPS transfer.\n\nIntroducing RemoteLogger library.\nIt firstly saves debug messages to a memory buffer, then stores to a file and then sends them to an HTTPs server.\n\n## Features\n\n* lightweight (no external dependencies)\n* send logs via http/https\n\n## Setup with dependency managers\n\n### Cocoapods\n\n    pod 'RemoteLogging', '0.1.0'\n\nor\n\n    pod \"BerTlv\", :git =\u003e 'git@github.com:payneteasy/RemoteLogging.git', :tag =\u003e '0.1.0'\n\n### Carthage\n\n    github \"RemoteLogging/BerTlv\"  \"0.1.0\"\n\n## How to use it\n\nPlease see SampleApp in this project to find out the best way to use the library.\nhttps://github.com/payneteasy/RemoteLogger/tree/master/SampleApp\n\nThe code below shows principles. \n\n```obj-c\n# define DLog(fmt, ...) [RemoteLogging send:__PRETTY_FUNCTION__ line:__LINE__ originalFormat:fmt , ##__VA_ARGS__];\n \n @interface RemoteLogging : NSObject\n \n +(void)incrementSession;\n \n +(void)     send:(const char*) aSender\n             line:(int) aLine\n   originalFormat:(NSString *)aOriginalFormat\n                 , ...\n ;\n \n @end\n\n@implementation RemoteLogging\n\n+ (RLHttpRemoteLogger *) sharedInstance {\n    static dispatch_once_t      predicate;\n    static RLHttpRemoteLogger   * instance;\n\n    dispatch_once(\u0026predicate, ^{\n        RLDirectory * directory = [[RLDirectory alloc] initCacheWithName:@\"remote-logs\"];\n        [directory mkDir];\n\n        instance = [[RLHttpRemoteLogger alloc]\n                initWithDirectory:directory.path\n                        uploadUrl:YOUR_UPLOAD_URL\n                      accessToken:YOUR_ACCESS_TOKEN\n                 memoryBufferSize:50  * 1024\n                         fileSize:200 * 1024\n                       loggerName:@\"remote\"\n                       filesCount:50\n                    directorySize:10 * 1024 * 1024];\n    });\n    return instance;\n}\n\n+ (void)incrementSession {\n    [[RemoteLogging sharedInstance] mark];\n}\n\n+ (void)send:(const char *)aSender line:(int)aLine originalFormat:(NSString *)aOriginalFormat, ... {\n    va_list args;\n    va_start(args,aOriginalFormat);\n    NSString *logLine = [[NSString alloc] initWithFormat:aOriginalFormat arguments:args];\n    va_end(args);\n\n    // write to log immediately\n    NSLog(@\"%@: %@\", [NSThread currentThread], logLine);\n\n    NSString *outputText = [self createOutputText:aSender aLine:aLine text:logLine];\n    [[RemoteLogging sharedInstance] send:outputText];\n}\n\n+ (NSString *)createOutputText:(char const *)aSender aLine:(int)aLine text:(NSString *)aText {\n    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];\n    [dateFormat setDateFormat:@\"YYYY-MM-dd HH:mm:ss.SSS ZZZZZ\"];\n\n    // date\n    // sender\n    // line\n    // log line\n    NSString *outputText = [NSString stringWithFormat:@\"%@ %s,%d - %@\\n\"\n            , [dateFormat stringFromDate:[NSDate date]]\n            , aSender\n            , aLine\n            , aText\n    ];\n    return outputText;\n}\n\n@end\n\n``` \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpayneteasy%2Fremotelogger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpayneteasy%2Fremotelogger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpayneteasy%2Fremotelogger/lists"}