https://github.com/jcoreio/log4jcore
https://github.com/jcoreio/log4jcore
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/jcoreio/log4jcore
- Owner: jcoreio
- License: mit
- Created: 2017-11-14T23:42:02.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-03-11T06:23:13.000Z (over 2 years ago)
- Last Synced: 2025-03-07T17:04:19.264Z (over 1 year ago)
- Language: TypeScript
- Size: 2.32 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# log4jcore
log4jcore
## Installation
```sh
yarn add log4jcore
```
## Usage
```typescript
import { logger } from 'log4jcore'
const log = logger('MyClass')
log.info('starting application')
// Multiple arguments are supported, like with console.log.
// One benefit of this approach is that arguments are not
// stringified unless the log level requires the message to be
// logged.
log.info('ip address:', process.env.IP_ADDRESS)
// Use arrow functions to avoid computing a message unless the
// log level requires it to be logged.
log.debug(() => `hostname: ${process.env.HOSTNAME}`)
```
### Configuring Log Levels
Log levels are set to `info` by default. To change the log level
for a logger, pass in an environment variable like `DEBUG=MyClass`.
Valid environment variable names are:
- `TRACE`
- `DEBUG`
- `INFO`
- `WARN`
- `ERROR`
- `FATAL`
To change the log levels of multiple loggers, use a comma separated list of logger
names, like `DEBUG=MyClass,AnotherClass`.
### Changing Appenders
The default appender calls `console.log` if the message
severity is `WRAN` or lower, and calls `console.error` if the message severity
is `ERROR` or higher.
`setLogFunctionProvider` allows you to override this and replace the log writer
with a different one. This can be useful if you want to log to a file or log to
an external logging API.
You can also pass custom providers to `createLogger`:
```ts
import { createLogger, createDefaultLogProvider } from 'log4jcore'
import fs from 'fs'
import memoryLogProvider from 'log4jcore/memoryLogProvider'
import writableLogFunction from 'log4jcore/writableLogFunction'
const downstream = createLogger({ loggerPath: 'downstream' })
const memLog = memoryLogProvider()
const log = createLogger({
loggerPath: 'test',
logProviders: [
downstream.inputLogProvider,
memLog,
createDefaultLogProvider(
writableLogFunction(fs.createWriteStream('out.log'))
),
],
})
// later, you can inspect memLog.messages
```
#### Logging to a file using `log4jcore-file-appender`:
`log4jcore-file-appender` is a simple logging provider that writes to a file instead
of stdout / stderr. At the time of this writing, it does not have TypeScript type defs
although it does have Flow Type defs.
```sh
yarn add log4jcore-file-appender
```
```js
const { setLogFunctionProvider } = require('log4jcore')
const { createFileAppender } = require('log4jcore-file-appender')
setLogFunctionProvider(createFileAppender({ file: 'messages.log' }))
```