Hi! Before continuing note this is the second part of my "Comb" logging guide. For part one see: "Comb" Library: Logging. Else, on we go.
In this part let's cover the configuration of the logging system by calling the logging configuration function comb.logger.configure that will state what level should be stored/outputted to where.
Before this we need to know about Appenders. Appenders are the end points that can be attached to logers.
Multiple appenders are already included as part of the Comb Library
To declare a appender and its target, it would look something like this.
Level class used to describe logging levels. The levels determine what types of events are logged to the appenders for example the if Level.ALL is used then all event will be logged, however if Level.INFO was used then ONLY INFO, WARN, ERROR, and FATAL events will be logged. To turn off logging for a logger use Level.OFF.
The Cool part(Nerd time ;) Let's create a configuration file.
We configure by passing a block JSON to the "configure" function.
Configuration object layout:
Example from the comb site:
You can also log directly to levels with
Here the list of pre-supported functions
In this part let's cover the configuration of the logging system by calling the logging configuration function comb.logger.configure that will state what level should be stored/outputted to where.
Before this we need to know about Appenders. Appenders are the end points that can be attached to logers.
Multiple appenders are already included as part of the Comb Library
- FileAppender - log it to a file
- RollingFileAppender - log it to a file up to a customizable size then create a new one.
- JSONAppender - write it out as JSON to a file.
- ConsoleAppender- log it to the consol
To declare a appender and its target, it would look something like this.
var myLogger = comb.logger("my.logger") .addAppender("ConsoleAppender") .addAppender("FileAppender", {file:'/var/log/my.log'}) .addAppender("RollingFileAppender", {file:'/var/log/myRolling.log'}) .addAppender("JSONAppender", {file:'/var/log/myJson.log'});
Level class used to describe logging levels. The levels determine what types of events are logged to the appenders for example the if Level.ALL is used then all event will be logged, however if Level.INFO was used then ONLY INFO, WARN, ERROR, and FATAL events will be logged. To turn off logging for a logger use Level.OFF.
comb.logger.configure(); //the loggers you create now will have a ConsoleAppender
OR
comb.logger.configure(comb.logger.appender("FileAppender", {file : '/var/log/my.log'})); //loggers will have a FileAppender
The Cool part(Nerd time ;) Let's create a configuration file.
We configure by passing a block JSON to the "configure" function.
Configuration object layout:
- "name space"(object attribute) -> Object
- level(object attribute) -> String
- appenders(Array) -> objects
- name -> String
- level -> String
- type -> String
- file -> String
- pattern -> String
- overwrite -> String
Example from the comb site:
comb.logger.configure({ "my.logger": { level: "INFO", appenders: [{ //default file appender type: "FileAppender", file: "/var/log/myApp.log", }, { //default JSON appender type: "JSONAppender", file: "/var/log/myApp.json", }, { type: "FileAppender", //override default patter pattern: "{[EEEE, MMMM dd, yyyy h:m a]timeStamp} {[5]level} {[- 5]levelName} {[-20]name} : {message}", //location of my log file file: "/var/log/myApp-errors.log", //override name so it will get added to the log name: "errorFileAppender", //overwrite each time overwrite: true, //explicity set the appender to only accept errors level: "ERROR" }, { type: "JSONAppender", file: "/var/log/myApp-error.json", //explicity set the appender to only accept errors level: "ERROR" }] } })
You can also log directly to levels with
var logger = comb.logger("logger"); logger.log("info", "my message"); // or if it is one of the default types logger.info("my message");
Here the list of pre-supported functions