Hej tamo! Ako vas zanimaju TypeScript aplikacije i želite da postavite umivaonik konzole, došli ste na pravo mjesto. Ja sam dobavljač sudopera za konzole i tu sam da vas provedem kroz proces korak po korak.
Prvo, hajde da shvatimo šta je to konzolni sudoper. U kontekstu TypeScript aplikacije, prijemnik konzole je način za rukovanje i upravljanje izlazom dnevnika vaše aplikacije. To je kao mala kantica u koju idu sve vaše log poruke i možete odlučiti šta ćete s njima - da li ih prikazuje na konzoli, šalje ih u datoteku ili ih čak prosljeđuje udaljenom serveru.
Preduvjeti
Prije nego što zaronimo u postavljanje konzole, potrebno je da imate osnovni TypeScript projekt koji je pokrenut i pokrenut. Ako već niste, možete ga kreirati pomoću alata kao što sunpmitsc(TypeScript kompajler). Evo kratkog pregleda kako započeti:
-
Inicijalizirajte novi npm projekat:
Otvorite svoj terminal i pokrenite sljedeću naredbu:npm init -yOvo će stvoriti a
package.jsondatoteku u direktoriju vašeg projekta, koji prati sve ovisnosti vašeg projekta. -
Instalirajte TypeScript:
Pokrenite sljedeću naredbu da instalirate TypeScript kao razvojnu ovisnost:npm install --save-dev typescript -
Kreirajte a
tsconfig.jsonfajl:
Možete generirati osnovnutsconfig.jsonfajl pokretanjem:npx tsc --toplinaOva datoteka sadrži opcije konfiguracije za TypeScript prevodilac.
Postavljanje Simple Console Sink
Sada kada ste pripremili svoj TypeScript projekat, počnimo sa postavljanjem jednostavne konzole. Koristit ćemo osnovni primjer gdje zapisujemo poruke na konzolu.
-
Kreirajte klasu Logger
Prvo, kreirajmo aLoggerklasa koja će se baviti evidentiranjem. Kreirajte novi fajl, npr.logger.ts, i dodajte sljedeći kod:
class Logger { log(message: string) { console.log(message); } error(message: string) { console.error(message); } } izvoz podrazumevani Logger;U ovoj klasi imamo dvije metode:
logigreška. Thelogmetoda jednostavno bilježi poruku na konzolu koristećiconsole.log, i thegreškametoda bilježi poruku o grešci koristećiconsole.error. -
Korištenje Loggera u vašoj aplikaciji
Sada, hajde da koristimo našeLoggerklase u našoj glavnoj aplikacijskoj datoteci. Napravite novi fajl, recimoapp.ts, i dodajte sljedeći kod:import Logger iz './logger'; const logger = new Logger(); logger.log('Ovo je poruka dnevnika'); logger.error('Ovo je poruka o grešci');Ovdje uvozimo
Loggerklasu, kreirajte njenu instancu, a zatim koristitelogigreškametode za evidentiranje poruka.
Napredno podešavanje sudopera konzole
Iako je gornji primjer jednostavan način za evidentiranje poruka na konzoli, možda biste željeli učiniti naprednije stvari, poput filtriranja poruka na osnovu njihove ozbiljnosti ili slanja na više odredišta.
-
Dodavanje nivoa dnevnika
Dodajmo nivoe dnevnika u našeLoggerklasa. Definisaćemo različite nivoe kao što suDEBUG,INFO,UPOZORENJE, iGREŠKA. Ažurirajtelogger.tsfajl kako slijedi:enum LogLevel { DEBUG, INFO, WARN, ERROR } class Logger { private logLevel: LogLevel; constructor(logLevel: LogLevel = LogLevel.INFO) { this.logLevel = logLevel; } log(nivo: LogLevel, poruka: string) { if (nivo >= this.logLevel) { switch (nivo) { case LogLevel.DEBUG: console.debug(message); break; case LogLevel.INFO: console.log(message); break; case LogLevel.WARN: console.warn(message); break; case LogLevel.ERROR: console.error(message); break; } } } debug(message: string) { this.log(LogLevel.DEBUG, message); } info(poruka: string) { this.log(LogLevel.INFO, poruka); } warn(message: string) { this.log(LogLevel.WARN, message); } error(message: string) { this.log(LogLevel.ERROR, message); } } izvoz default Logger;U ovaj ažurirani kod, dodali smo
enumza nivoe dnevnika i parametar konstruktora za postavljanje minimalne razine dnevnika. Thelogmetoda sada provjerava da li je nivo dnevnika poruke veći ili jednak minimalnom nivou dnevnika prije nego što je evidentira. -
Korištenje Advanced Logger
Ažurirajteapp.tsdatoteku za korištenje naprednogLoggerklasa:import Logger, { LogLevel } iz './logger'; const logger = new Logger(LogLevel.DEBUG); logger.debug('Ovo je poruka za otklanjanje grešaka'); logger.info('Ovo je info poruka'); logger.warn('Ovo je poruka upozorenja'); logger.error('Ovo je poruka o grešci');Sada možete kontrolirati koje će se poruke evidentirati na osnovu nivoa dnevnika koji ste postavili prilikom kreiranja
Loggerinstance.
Slanje dnevnika na više odredišta
Ponekad ćete možda htjeti poslati svoje dnevnik poruke na više odredišta, kao što su konzola i datoteka. Da bismo to učinili, možemo koristiti koncept koji se zove "sudopere". Sink je odredište na koje se šalju poruke dnevnika.
-
Kreiranje sučelja sudopera
Prvo, napravimo interfejs za sudopere. Kreirajte novi fajl,sink.ts, i dodajte sljedeći kod:interfejs Sink { write(message: string): void; } izvoz default Sink;Ovaj interfejs definiše jednu metodu,
pisati, koji se koristi za slanje dnevnik poruke u sink. -
Kreiranje sudopera za konzolu
Sada, hajde da kreiramo konzolu koja implementiraSudoperinterfejs. Ažurirajtelogger.tsfajl kako slijedi:import Sink iz './sink'; enum LogLevel { DEBUG, INFO, WARN, ERROR } class ConsoleSink implementira Sink { write(message: string) { console.log(message); } } class Logger { private logLevel: LogLevel; privatni sudoperi: Sudoper[]; constructor(logLevel: LogLevel = LogLevel.INFO, sinks: Sink[] = [new ConsoleSink()]) { this.logLevel = logLevel; this.sinks = sudoperi; } log(nivo: LogLevel, poruka: string) { if (nivo >= this.logLevel) { const formattedMessage = `[${LogLevel[nivo]}] ${message}`; this.sinks.forEach(sink => sink.write(formattedMessage)); } } debug(message: string) { this.log(LogLevel.DEBUG, message); } info(poruka: string) { this.log(LogLevel.INFO, poruka); } warn(message: string) { this.log(LogLevel.WARN, message); } error(message: string) { this.log(LogLevel.ERROR, message); } } export { LogLevel }; izvoz default Logger;U ovom ažuriranom kodu kreirali smo a
ConsoleSinkklasa koja implementiraSudoperinterfejs. TheLoggerklasa sada uzima niz ponora u svom konstruktoru i kada evidentira poruku, šalje poruku svim sinkovima u nizu. -
Dodavanje ponora datoteka
Dodajmo ponor datoteke našoj aplikaciji. Koristićemofsmodul u Node.js za pisanje dnevnik poruka u datoteku. Ažurirajtesink.tsfajl kako slijedi:import * kao fs iz 'fs'; interfejs Sink { write(message: string): void; } class ConsoleSink implementira Sink { write(message: string) { console.log(message); } } class FileSink implementira Sink { private filePath: string; constructor(filePath: string) { this.filePath = filePath; } write(message: string) { fs.appendFile(this.filePath, message + '\n', (err) => { if (err) { console.error('Greška pri pisanju u datoteku:', err); } }); } } export { ConsoleSink, FileSink }; izvoz podrazumevani sudoper;Sada ažurirajte
app.tsdatoteku za korištenje i ponora konzole i ponora datoteka:import Logger, { LogLevel } iz './logger'; import { ConsoleSink, FileSink } iz './sink'; const consoleSink = new ConsoleSink(); const fileSink = new FileSink('app.log'); const logger = novi Logger(LogLevel.DEBUG, [consoleSink, fileSink]); logger.debug('Ovo je poruka za otklanjanje grešaka'); logger.info('Ovo je info poruka'); logger.warn('Ovo je poruka upozorenja'); logger.error('Ovo je poruka o grešci');Sa ovim podešavanjem, poruke dnevnika će se slati i na konzolu i na
app.logfajl.
Komercijalni keramički sudoper umivaonik set za kupaonicu
Ako ste takođe zainteresovani zaKomercijalni keramički sudoper umivaonik set za kupaonicu, pokrili smo te. Naši visokokvalitetni konzolni umivaonici nisu samo elegantni već i izdržljivi, savršeni za svako komercijalno ili stambeno kupatilo.
Zaključak
Podešavanje konzole u aplikaciji TypeScript može biti jednostavno ili složeno koliko vam je potrebno. Bilo da samo bilježite poruke na konzolu ili ih šaljete na više odredišta, koncepti koje smo ovdje pokrili mogu vam pomoći da izgradite robustan sistem evidentiranja.
Ako ste zainteresovani za naše proizvode za sudopere za konzole, bilo da se radi o potrebama evidentiranja vaše aplikacije TypeScript ili za vaše kupatilo, slobodno se obratite za raspravu o nabavci. Tu smo da vam pomognemo da pronađete najbolje rješenje za vaše zahtjeve.
Reference
- TypeScript dokumentacija
- Node.js dokumentacija
