Angry Log
"Stop cutting logs off! At least for development environments..."
Benefits
- Shows the correct line
- Logs only under a certain condition
- Remote logging in production
- Stupid simple and elegant
Usage
The idea behind it is pretty simple:
If Angular's isDevMode()
returns true
,
window.console.log
and variants will work as usual. Otherwise, Angry Log will
look for a URL for remote logging (only for window.console.error
).
Simply import the module:
import { AngryLogger, AngryLogModule } from "angry-log";
@NgModule({
bootstrap: [
AppComponent
],
declarations: [
AppComponent
],
imports: [
BrowserModule,
HttpModule,
JsonpModule,
AngryLogModule
]
})
export class AppModule {}
Then:
import { AngryLogService } from "angry-log";
@Component({
selector: "app"
})
export class AppComponent {
constructor(ngls: AngryLogService) {
ngls.title = "Global Name";
ngls.log("AppComponent");
let loggerFoo: AngryLogger = ngls.instantiateLogger({ title: 'From Foo' });
loggerFoo.log("Hello World");
let loggerBar: AngryLogger = ngls.instantiateLogger({ title: this });
loggerBar.debug("Checking atmosphere...");
let loggerVegan: AngryLogger = ngls.instantiateLogger();
loggerVegan.warn("Save the Earth, go vegan!");
}
}
Settings
They're the same for both the service and the log instances:
- condition:
boolean
, default is isDevMode()
- title:
string
, default is undefined
, sets a title to show in the logs - URL:
string
, default is undefined
, is the URL for remote debugging