Skip to content
This repository was archived by the owner on Feb 9, 2026. It is now read-only.

Commit 467cfb7

Browse files
committed
feat: additional JS logging to file
1 parent 0c48177 commit 467cfb7

6 files changed

Lines changed: 207 additions & 41 deletions

File tree

lib/ios/Classes/LdkLogger.swift

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,32 @@ class LdkLogger: Logger {
2121
//Only when the JS code has set the log level to active
2222
if activeLevels[level] == true {
2323
LdkEventEmitter.shared.send(withEvent: .ldk_log, body: record.get_args())
24-
Logfile.log.write(record.get_args())
24+
25+
var levelStr = ""
26+
switch level {
27+
case 0:
28+
levelStr = "GOSSIP"
29+
break
30+
case 1:
31+
levelStr = "TRACE"
32+
break
33+
case 2:
34+
levelStr = "DEBUG"
35+
break
36+
case 3:
37+
levelStr = "INFO"
38+
break
39+
case 4:
40+
levelStr = "WARN"
41+
break
42+
case 5:
43+
levelStr = "ERROR"
44+
break
45+
default:
46+
levelStr = "LEVEL \(level)"
47+
}
48+
49+
Logfile.log.write("\(levelStr) (LDK): \(record.get_args())")
2550
}
2651
}
2752

lib/ios/Helpers.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ import Foundation
99
import LightningDevKit
1010

1111
func handleResolve(_ resolve: RCTPromiseResolveBlock, _ res: LdkCallbackResponses) {
12-
LdkEventEmitter.shared.send(withEvent: .native_log, body: "Success: \(res.rawValue)")
12+
if res != .log_write_success {
13+
LdkEventEmitter.shared.send(withEvent: .native_log, body: "Success: \(res.rawValue)")
14+
}
1315
resolve(res.rawValue)
1416
}
1517

lib/ios/Ldk.m

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ @interface RCT_EXTERN_MODULE(Ldk, NSObject)
1010
RCT_EXTERN_METHOD(setLogFilePath:(NSString *)path
1111
resolve:(RCTPromiseResolveBlock)resolve
1212
reject:(RCTPromiseRejectBlock)reject)
13+
RCT_EXTERN_METHOD(writeToLogFile:(NSString *)line
14+
resolve:(RCTPromiseResolveBlock)resolve
15+
reject:(RCTPromiseRejectBlock)reject)
1316
RCT_EXTERN_METHOD(initChainMonitor:(RCTPromiseResolveBlock)resolve
1417
reject:(RCTPromiseRejectBlock)reject)
1518
RCT_EXTERN_METHOD(initKeysManager:(NSString *)seed

lib/ios/Ldk.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ enum LdkCallbackResponses: String {
7171
case fees_updated = "fees_updated"
7272
case log_level_updated = "log_level_updated"
7373
case log_path_updated = "log_path_updated"
74+
case log_write_success = "log_write_success"
7475
case chain_monitor_init_success = "chain_monitor_init_success"
7576
case keys_manager_init_success = "keys_manager_init_success"
7677
case channel_manager_init_success = "channel_manager_init_success"
@@ -174,6 +175,12 @@ class Ldk: NSObject {
174175
return handleResolve(resolve, .log_path_updated)
175176
}
176177

178+
@objc
179+
func writeToLogFile(_ line: NSString, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
180+
Logfile.log.write(String(line))
181+
return handleResolve(resolve, .log_write_success)
182+
}
183+
177184
@objc
178185
func initChainMonitor(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
179186
guard chainMonitor == nil else {

0 commit comments

Comments
 (0)