1.0.9 • Published 6 months ago

markuss23-logger-test-ts v1.0.9

Weekly downloads
-
License
ISC
Repository
-
Last release
6 months ago

Logger

instalace:

pro instalaci můžeme použít příkaz:
npm install logger
pokud není výchozí registr npm na stanici nastaven na npmjs.kzcr.eu a balíčky jsou stahovány z původního registru použijeme:
npm install logger --registry: npmjs.kzcr.eu

Použití:

import loggeru

import logger from "logger"

po importu v App.jsx / App.tsx

import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App.tsx'
import './index.css'
import logger from "logger";

logger.initialize();

ReactDOM.createRoot(document.getElementById('root')!).render(
  <React.StrictMode>
        <App />
  </React.StrictMode>,
)

Po inicializaci logger okamžitě začíná vnímat všechnny metody Console a využívat je pro zapisování logů do pole logger.logs.

zapsané logy jsou dostupné pomocí logger.logs - pole logů. případně jinak pokud byla definována metoda onDataSave();

Dostupný Config


logger lze nastavit objektem config, který má následující attributy:

názevtyppopis
minSeveritynumberminimální úroveň závažnosti
observeTimenumberčas kontroly délky pole logů
onDataSend()=>voidfunkce vykonaná pro odesílání logů
onDataSave()=>voidfunkce vykonaná při ukládání logů
checkOnCountnumberpočet logů, při jehož překročení bude pokus o odeslání

může vypadat například takto

const loggerConfig = {
  minSeverity: 2, // minimální console.info()
  observeTime: 1000, //každou vteřinu
  onDataSend: ()=>fetch(someUrl, {credentials:"include"});
  onDataSave: ()=>localStorage.setItem('logs', logger.logs);
}

configuraci poté předáme inicializační funkci v useEffect

useEffect(()=>{
  logger.initialize(loggerConfig);
},[])

Attributy třídy Logger


názevviditelnosttyppopis
logIdprivatenumberpočítadlo, z kterého je vypočítáno ID logu a převedono na string
minSeveritypublicnumberčíslo minimální závažnosti, od které se logy zapisují
logspublicArray<Log>pole zapsaných logů
observerpublicbooleanzda je spuštěno sledování logů
observeTimepublicnumberčas který každých x milisekund provede kontrolu nových logů
checkOnCountpublicnumberpočet logů, po kterém se logger pokusí logy odeslat

Metody třídy Logger


názevviditelnosttyppopis
onLogWritepublic(id: number, message: string, severity: LogSeverity)=>voidfunkce zavolaná pro uložení logu. Slouží k přepisu původního zahrnutí do pole logu. Parametry funkce jsou id, message a severity, lze je využít v definované funkci
onDataSavepublic()=>voidfunkce zavolaná pro uložení logů
onDataSendpublic()=>voidfunkce zavolaná pro odeslání logů
startObserverpublic()=>voidzapnutí hlídání pole logů
stopObserverpublic()=>voidvypnutí hlídání pole logů

Použití třídy Logger


třídu Logger lze samozřejmě importovat pomocí import { Logger } from "logger" a lze jí vytvořit vlastní logiku, pokud by nevyhovovalo použití s přepisem metod console, které exportuje instance která je defaultně exportovaná z balíčku logger.
V tomto případě je nutné vytvořit si vlastní instanci třídy a tu poté exportovat např vytvoříme soubor MyLogger.tsx.

//MyLogger.tsx

import { Logger } from "logger"

const myLogger = new Logger();

export default myLogger;

Pokud budeme chtít rozšířit třídu a definovat vlastní metody pro logování:

//MyLogger.tsx

class MyLogger extends Logger {
  myAwesomeMethod:()=>{
    return this.logs[0].id
  }
  /**
  * @Override
  */ 
  write(id: string, message: number){
    // do something... 
  }
}


const logger = new MyLogger();
export default logger;

další importy

lze importovat:

  • Log - interface pro objekt logu
  • LogSeverity - enum severit
  • LogType - přežitek z původního loggeru
  • LoggerConfig - interface pro objekt konfigurace loggeru

DEPRECATED


  • LogType
1.0.9

6 months ago