markuss23-logger-pub 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
2 years ago