Library usage
Pup can be integrated into your application. Simply import it from your preferred location. We recommend jsr.io/@pup/pup. Here's how you can set up your main script:
// Change 1.0.4 to the latest available version
import { Configuration, Pup } from "jsr:@pup/pup@1.0.4/mod.ts"
const configuration: Configuration = {
"logger": {
/* This is optional. If included, it can be used to specify custom logger settings */
},
"processes": [
{/*...*/},
{/*...*/},
],
}
const pup = await Pup.init(configuration /* OPTIONAL: , statusFile */)
// Kickstart the pup instance
pup.init()
Custom logger
Pup supports the integration of a custom logger. This allows for more flexible and adaptable logging, suitable to your specific requirements. Here's how you can implement it:
// Create a pup instance
const pup = await Pup
.init() /* The configuration object is optional when instantiating a new Pup */
// Create a custom logger function
const logger = (
severity: string,
category: string,
text: string,
_config?: GlobalLoggerConfiguration,
process?: ProcessConfiguration,
) => {
// The initiator will be the process ID if a process is specified, otherwise it defaults to "core"
const initiator = process ? process.id : "core"
// Implement your custom log function here
console.log(`${initiator}(${severity}:${category}): ${text}`)
// Block the built-in logger by returning true. This prevents the built-in logger from logging the same message.
return true
}
// Attach the custom logger to the Pup instance
pup.logger.attach(logger)
// Kickstart the pup instance
pup.init()