Δημοσίευση πηγής
Κατεβάστε την πηγή ZIP
CH-J Server Manager
Περιηγηθείτε σε καταλόγους και αρχεία για μια συγκεκριμένη έκδοση εφαρμογών.
CH-J / Server Manager
196 αρχεία
core-20261013T133631Z-faa4ab45100e
Προστέθηκε: Ημερομηνία που δεν έχει καταγραφεί · Χτισμένο:
1
"use strict";3
const fs = require("node:fs");4
const path = require("node:path");6
const SENSITIVE_KEYS = /pass(word|phrase)?|private.?key|secret|token|credential/i;8
function sanitize(value, depth = 0) {9
if (depth > 5) return "[depth-limit]";10
if (Array.isArray(value)) return value.slice(0, 50).map((item) => sanitize(item, depth + 1));11
if (!value || typeof value !== "object") return value;12
const result = {};13
for (const [key, entry] of Object.entries(value)) {14
result[key] = SENSITIVE_KEYS.test(key) ? "[redacted]" : sanitize(entry, depth + 1);15
}16
return result;17
}19
class Logger {20
constructor(rootDir) {21
this.logDir = path.join(rootDir, "logs");22
this.logPath = path.join(this.logDir, "core.log");23
fs.mkdirSync(this.logDir, { recursive: true });24
}26
write(level, message, data = {}) {27
const record = {28
timestamp: new Date().toISOString(),29
level,30
message: String(message || ""),31
data: sanitize(data)32
};33
const line = `${JSON.stringify(record)}\n`;34
try { fs.appendFileSync(this.logPath, line, { encoding: "utf8", mode: 0o600 }); } catch {}35
const output = level === "error" ? console.error : level === "warn" ? console.warn : console.log;36
output(`[${level.toUpperCase()}] ${record.message}`, record.data);37
}39
info(message, data) { this.write("info", message, data); }40
warn(message, data) { this.write("warn", message, data); }41
error(message, data) { this.write("error", message, data); }42
}44
module.exports = { Logger, sanitize };SHA-256
89d04a484d9f684bf017a708c287c87d3f4fda912207ba8f7dc06bd33b35e5c5CH-J Proprietary Software License 1.14 · Η πηγή παρέχεται στο CH-J Proprietary Software License 1.14. Η διαθεσιμότητά του δεν αλλάζει τους όρους της άδειας χρήσης ούτε χορηγεί πρόσθετα δικαιώματα.
Archive SHA-256
de757268dbc4f0226549f8b4f41f9b7e585c856ee97fa0d43b17a0e95c281449