ziti-sdk-c-nodejs
Version:
Node.js wrapper for OpenZiti C SDK
107 lines (88 loc) • 4.21 kB
JavaScript
const { ZitiSDK, LOG_LEVELS } = require('./index.js');
const fs = require('fs');
const path = require('path');
async function testFileLogging() {
console.log('🧪 Testowanie logowania do pliku');
console.log('================================\n');
const logFilePath = './ziti-test-logs.txt';
// Usuń stary plik logów jeśli istnieje
if (fs.existsSync(logFilePath)) {
fs.unlinkSync(logFilePath);
console.log('🗑️ Usunięto stary plik logów');
}
try {
const sdk = new ZitiSDK();
console.log('✅ ZitiSDK utworzony');
await sdk.init();
console.log('✅ SDK zainicjalizowane');
// Ustaw logowanie do pliku
sdk.setLogFile(logFilePath);
console.log(`📁 Ustawiono plik logów: ${logFilePath}`);
// Włącz natywne logi
sdk.enableNativeLogs(true);
console.log('🔧 Włączono natywne logi');
// Ustaw poziom logowania na DEBUG aby zobaczyć więcej wiadomości
sdk.setLogLevel(LOG_LEVELS.DEBUG);
console.log('📝 Ustawiono poziom logowania na DEBUG');
// Ustaw callback do logowania w konsoli
sdk.setLogCallback((level, message) => {
const levelNames = ['NONE', 'ERROR', 'WARN', 'INFO', 'DEBUG', 'VERBOSE', 'TRACE'];
const levelName = levelNames[level] || 'UNKNOWN';
console.log(`[Console ${levelName}] ${message}`);
});
console.log('🔄 Ustawiono callback logowania');
// Spróbuj załadować kontekst (to wygeneruje logi)
console.log('\n🔄 Próba załadowania kontekstu...');
try {
sdk.loadContext('./test-identity.json');
console.log('✅ Kontekst załadowany');
} catch (error) {
console.log('⚠️ Błąd ładowania kontekstu (oczekiwany):', error.message);
}
// Spróbuj utworzyć socket (to też wygeneruje logi)
console.log('\n🔄 Próba utworzenia socket...');
try {
const socket = sdk.socket();
console.log(`✅ Socket utworzony: ${socket}`);
// Spróbuj połączyć się z nieistniejącym serwisem (wygeneruje błędy)
console.log('\n🔄 Próba połączenia z nieistniejącym serwisem...');
const error = sdk.connect(socket, 'non-existent-service');
console.log(`📝 Wynik połączenia: ${error}`);
sdk.close(socket);
console.log('✅ Socket zamknięty');
} catch (error) {
console.log('⚠️ Błąd operacji socket (oczekiwany):', error.message);
}
// Zamknij SDK
sdk.shutdown();
console.log('✅ SDK zamknięte');
// Sprawdź czy plik logów został utworzony
console.log('\n📁 Sprawdzanie pliku logów...');
if (fs.existsSync(logFilePath)) {
const stats = fs.statSync(logFilePath);
console.log(`✅ Plik logów istnieje (${stats.size} bajtów)`);
// Pokaż zawartość pliku
const logContent = fs.readFileSync(logFilePath, 'utf8');
console.log('\n📄 Zawartość pliku logów:');
console.log('=' * 50);
console.log(logContent);
console.log('=' * 50);
if (logContent.length > 0) {
console.log('🎉 SUKCES! Logowanie do pliku działa!');
} else {
console.log('⚠️ Plik logów jest pusty - może nie było wiadomości do zalogowania');
}
} else {
console.log('❌ Plik logów nie został utworzony');
}
} catch (error) {
console.error('❌ Błąd podczas testu:', error.message);
console.error('Stack trace:', error.stack);
}
}
// Uruchom test
testFileLogging().then(() => {
console.log('\n🏁 Test zakończony');
}).catch((error) => {
console.error('❌ Test nie powiódł się:', error);
});