logsilo
Version:
A lightweight logging utility for sending logs to a configured endpoint.
115 lines (85 loc) • 3.55 kB
Markdown
# LogSilo
A lightweight logging utility for sending logs to a configured endpoint.
## Installation
Use the package manager [npm](https://www.npmjs.com/) to install Silo.
```bash
npm install logsilo
```
## Usage
### 1. Importing and Initializing Silo
To start using Silo, first import it and create an instance with your specific configuration.
```javascript
import silo, { Silo, SiloLog } from 'logsilo';
// Create an instance of Silo with your configuration
const siloInstance: Silo = silo.create({
apiKey: 'Your Silo Backend Api Key' // The api key of the backend
apiUrl: 'https://your-backend-api-url', // The backend endpoint for sending logs
application: 'Your App Name', // The name of your application
});
```
### 2. Creating a Log Entry
Once you have an instance, create individual log entries using the SiloLog class. Each log entry allows for customizable properties.
```javascript
const siloLog: SiloLog = new SiloLog({
shortDescription: 'This is a 404 test log', // Required, brief description of the log
detailedDescription: 'This is the longer description of the 404 test log which occurred...', // Optional, detailed description
service: 'Your Service Which Produced The Log', // Optional, name of the service responsible
level: 2, // Optional, severity level of the log (e.g., 1 = Info, 2 = Warning, 3 = Error)
user: 'John Doe', // Optional, user associated with the log
path: '/some-super-test-route', // Optional, route or path related to the log event
statusCode: 404, // Optional, HTTP status code (if applicable)
timestamp: new Date() // Optional default is new Date()
});
```
### 3. Using LogSilo
With your log entry created, you can use the following methods with your siloInstance.
```javascript
// Display the log in the console
siloInstance.console(siloLog);
// Send the log to the backend API specified in the instance's configuration
siloInstance.send(siloLog);
// Display the current configuration of the instance in the console
siloInstance.showConfig();
// Show the Silo logo in the console
siloInstance.showSiloArt();
```
## Example
```javascript
import silo, { Silo, SiloLog } from 'logsilo';
// Initialize an instance
const siloInstance: Silo = silo.create({
apiKey: 'Your Silo Backend Api Key',
apiUrl: 'https://your-backend-api-url',
application: 'Example App',
});
// Create a log entry
const exampleLog: SiloLog = new SiloLog({
shortDescription: 'Example log entry',
detailedDescription: 'Detailed information about this log entry...',
service: 'Example Service',
level: 1,
user: 'Alice Doe',
path: '/example-path',
statusCode: 400,
});
// Log to console and send to API
siloInstance.console(exampleLog);
try {
const response = await siloInstance.send(exampleLog);
} catch (error) {
console.error(error);
}
// Display config and show the logo
siloInstance.showConfig();
siloInstance.showSiloArt();
```
## Api Reference
##### create(config): Creates and returns a new Silo instance.
##### apiUrl (string): The endpoint to send logs to.
##### application (string): The application name.
##### console(log): Logs the entry to the console.
##### send(log): Sends the log to the specified API.
##### showConfig(): Displays the current instance configuration in the console.
##### showSiloArt(): Shows the Silo logo art in the console.
## License
[ISC](https://choosealicense.com/licenses/isc/)