update for jsr
This commit is contained in:
56
README.md
56
README.md
@@ -1,4 +1,4 @@
|
|||||||
# logger [](https://www.npmjs.com/package/@iankulin/logger) [](https://npmjs.org/package/@iankulin/logger)
|
# logger [](https://jsr.io/@iankulin/logger) [](https://jsr.io/@iankulin/logger/score)
|
||||||
|
|
||||||
> Flexible console logging utility with colors, and multiple output formats
|
> Flexible console logging utility with colors, and multiple output formats
|
||||||
|
|
||||||
@@ -8,20 +8,23 @@
|
|||||||
- **Flexible output formats**: JSON or simple text
|
- **Flexible output formats**: JSON or simple text
|
||||||
- **Caller detection**: Automatically identifies source file and line number based on log level
|
- **Caller detection**: Automatically identifies source file and line number based on log level
|
||||||
- **Color support**: Automatic TTY detection with colored output
|
- **Color support**: Automatic TTY detection with colored output
|
||||||
- **ESM only**: Modern ES module support
|
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
Install with [npm](https://npmjs.org/package/@iankulin/logger):
|
Install with [JSR](https://jsr.io/@iankulin/logger) for Deno:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ npm install @iankulin/logger
|
# Add to your deno.json
|
||||||
|
$ deno add @iankulin/logger
|
||||||
|
|
||||||
|
# Or import directly
|
||||||
|
$ deno run --allow-env --allow-sys your-script.js
|
||||||
```
|
```
|
||||||
|
|
||||||
## Quick Start
|
## Quick Start
|
||||||
|
|
||||||
```js
|
```typescript
|
||||||
import Logger from '@iankulin/logger';
|
import Logger from "@iankulin/logger";
|
||||||
|
|
||||||
const logger = new Logger();
|
const logger = new Logger();
|
||||||
logger.info('Hello from logger');
|
logger.info('Hello from logger');
|
||||||
@@ -32,8 +35,8 @@ logger.error('Something went wrong');
|
|||||||
|
|
||||||
### Basic Logging
|
### Basic Logging
|
||||||
|
|
||||||
```js
|
```typescript
|
||||||
import Logger from '@iankulin/logger';
|
import Logger from "@iankulin/logger";
|
||||||
const logger = new Logger({ level: 'info' });
|
const logger = new Logger({ level: 'info' });
|
||||||
|
|
||||||
logger.error('Critical error occurred');
|
logger.error('Critical error occurred');
|
||||||
@@ -52,7 +55,7 @@ The logger supports five log levels (from least to most verbose):
|
|||||||
- `info` - Error, warning, and info messages (default)
|
- `info` - Error, warning, and info messages (default)
|
||||||
- `debug` - All messages
|
- `debug` - All messages
|
||||||
|
|
||||||
```js
|
```typescript
|
||||||
const logger = new Logger({ level: 'debug' });
|
const logger = new Logger({ level: 'debug' });
|
||||||
|
|
||||||
// All of these will be logged
|
// All of these will be logged
|
||||||
@@ -73,7 +76,7 @@ console.log(logger.level()); // 'error'
|
|||||||
|
|
||||||
#### JSON Format (Default)
|
#### JSON Format (Default)
|
||||||
|
|
||||||
```js
|
```typescript
|
||||||
const logger = new Logger({ format: 'json' });
|
const logger = new Logger({ format: 'json' });
|
||||||
logger.info('Hello world');
|
logger.info('Hello world');
|
||||||
```
|
```
|
||||||
@@ -93,7 +96,7 @@ logger.info('Hello world');
|
|||||||
|
|
||||||
#### Simple Format
|
#### Simple Format
|
||||||
|
|
||||||
```js
|
```typescript
|
||||||
const logger = new Logger({ format: 'simple' });
|
const logger = new Logger({ format: 'simple' });
|
||||||
logger.error('Something failed');
|
logger.error('Something failed');
|
||||||
```
|
```
|
||||||
@@ -104,9 +107,9 @@ logger.error('Something failed');
|
|||||||
|
|
||||||
### Message Formatting
|
### Message Formatting
|
||||||
|
|
||||||
The logger uses Node.js `util.format()` for message formatting with placeholders like `%s`, `%d`, `%j`.
|
The logger supports `util.format()` style message formatting with placeholders like `%s`, `%d`, `%j`.
|
||||||
|
|
||||||
```js
|
```typescript
|
||||||
const logger = new Logger({ format: 'json' });
|
const logger = new Logger({ format: 'json' });
|
||||||
|
|
||||||
// String formatting
|
// String formatting
|
||||||
@@ -125,7 +128,7 @@ simpleLogger.warn('Processing file %s (%d bytes)', 'data.txt', 1024);
|
|||||||
|
|
||||||
### Custom Colors
|
### Custom Colors
|
||||||
|
|
||||||
```js
|
```typescript
|
||||||
const logger = new Logger({
|
const logger = new Logger({
|
||||||
colours: {
|
colours: {
|
||||||
error: '\x1b[31m', // Red
|
error: '\x1b[31m', // Red
|
||||||
@@ -140,7 +143,7 @@ const logger = new Logger({
|
|||||||
|
|
||||||
Control when caller information (file and line number) is included in log messages. This is useful for performance optimization since caller detection can be expensive.
|
Control when caller information (file and line number) is included in log messages. This is useful for performance optimization since caller detection can be expensive.
|
||||||
|
|
||||||
```js
|
```typescript
|
||||||
// Default: only include caller info for warnings and errors
|
// Default: only include caller info for warnings and errors
|
||||||
const logger = new Logger({ callerLevel: 'warn' });
|
const logger = new Logger({ callerLevel: 'warn' });
|
||||||
|
|
||||||
@@ -186,12 +189,12 @@ logger.debug('Debug message'); // No caller info
|
|||||||
|
|
||||||
## Common Usage Patterns
|
## Common Usage Patterns
|
||||||
|
|
||||||
```js
|
```typescript
|
||||||
import Logger from '@iankulin/logger';
|
import Logger from "@iankulin/logger";
|
||||||
|
|
||||||
// Production: JSON format with environment-based level
|
// Production: JSON format with environment-based level
|
||||||
const prodLogger = new Logger({
|
const prodLogger = new Logger({
|
||||||
level: process.env.LOG_LEVEL || 'info',
|
level: Deno.env.get('LOG_LEVEL') || 'info',
|
||||||
format: 'json',
|
format: 'json',
|
||||||
callerLevel: 'error', // Performance optimization
|
callerLevel: 'error', // Performance optimization
|
||||||
});
|
});
|
||||||
@@ -208,8 +211,7 @@ const testLogger = new Logger({ level: 'silent' });
|
|||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
- Node.js 18.0.0 or higher
|
- Deno 1.37.0 or higher
|
||||||
- ES modules support
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
@@ -217,9 +219,11 @@ const testLogger = new Logger({ level: 'silent' });
|
|||||||
|
|
||||||
## Versions
|
## Versions
|
||||||
|
|
||||||
- **0.1.5** - Initial release
|
- **1.0.0** - JSR release with full Deno support
|
||||||
- **0.1.6** - Added tests, improved error handling, caller detection loop prevention, `silent` logging level
|
- Migrated from [npm version](https://www.npmjs.com/package/@iankulin/logger) to JSR (JavaScript Registry)
|
||||||
- **1.0.0** - Production release
|
- Full TypeScript support
|
||||||
- **1.0.2** - Added types for intellisense
|
- Native Deno compatibility
|
||||||
- **1.1.0** - added { time: 'short' } option, refactor tests, added { callerLevel: 'warn' } option
|
|
||||||
- **1.1.2** - dependencies update following [chalk supply chain attack](https://www.bleepingcomputer.com/news/security/self-propagating-supply-chain-attack-hits-187-npm-packages/) although not affected.
|
## AI Disclosure
|
||||||
|
|
||||||
|
- AI Code tools were used in this project
|
||||||
|
|||||||
Reference in New Issue
Block a user