markuss23-logger-test-ts v1.0.9
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ázev | typ | popis |
---|---|---|
minSeverity | number | minimální úroveň závažnosti |
observeTime | number | čas kontroly délky pole logů |
onDataSend | ()=>void | funkce vykonaná pro odesílání logů |
onDataSave | ()=>void | funkce vykonaná při ukládání logů |
checkOnCount | number | poč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ázev | viditelnost | typ | popis |
---|---|---|---|
logId | private | number | počítadlo, z kterého je vypočítáno ID logu a převedono na string |
minSeverity | public | number | číslo minimální závažnosti, od které se logy zapisují |
logs | public | Array<Log> | pole zapsaných logů |
observer | public | boolean | zda je spuštěno sledování logů |
observeTime | public | number | čas který každých x milisekund provede kontrolu nových logů |
checkOnCount | public | number | počet logů, po kterém se logger pokusí logy odeslat |
Metody třídy Logger
název | viditelnost | typ | popis |
---|---|---|---|
onLogWrite | public | (id: number, message: string, severity: LogSeverity)=>void | funkce 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 |
onDataSave | public | ()=>void | funkce zavolaná pro uložení logů |
onDataSend | public | ()=>void | funkce zavolaná pro odeslání logů |
startObserver | public | ()=>void | zapnutí hlídání pole logů |
stopObserver | public | ()=>void | vypnutí 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
6 months ago