- NativeScript for Angular Mobile Development
- Nathan Walker Nathanael J. Anderson
- 313字
- 2021-07-02 18:41:48
Implementing LogService
Logging is an important ally that you want during the development lifecycle of your app as well as in production. It can help you debug as well as gain important insights into how your app is used. Having a single pathway to run all logging through also provides an opportunity to reroute all the app logs somewhere else with the flip of a switch. For example, you could use a third-party debug tracking service, such as TrackJS (https://trackjs.com), via Segment (https://segment.com). You will want to run a lot of important aspects of your app through logging and it serves as a great place to have a lot of control and flexibility.
Let's open app/modules/core/services/log.service.ts and get to work. Let's start by defining a static boolean that will serve as a simple flag we can toggle in our AppModule to enable/disable. Let's also add a few helpful methods:
import { Injectable } from '@angular/core';
@Injectable()
export class LogService {
public static ENABLE: boolean = true;
public debug(msg: any, ...formatParams: any[]) {
if (LogService.ENABLE) {
console.log(msg, formatParams);
}
}
public error(msg: any, ...formatParams: any[]) {
if (LogService.ENABLE) {
console.error(msg, formatParams);
}
}
public inspect(obj: any) {
if (LogService.ENABLE) {
console.log(obj);
console.log('typeof: ', typeof obj);
if (obj) {
console.log('constructor: ', obj.constructor.name);
for (let key in obj) {
console.log(`${key}: `, obj[key]);
}
}
}
}
}
- debug: This will serve as our most commonly used output API for logging.
- error: When we know a certain condition is an error, this will help identify those spots in our log.
- inspect: There are times when viewing an object can help find a bug or help us understand the state of our app at any given moment.
With our LogService implemented, we will now use it throughout our app and the rest of this book instead of using the console directly.
- Boost.Asio C++ Network Programming(Second Edition)
- Building a Home Security System with Raspberry Pi
- Python自然語言處理(微課版)
- Blender 3D Incredible Machines
- C語言程序設計案例精粹
- Learning Python Design Patterns
- Learning Vaadin 7(Second Edition)
- Learning Continuous Integration with TeamCity
- 深入淺出Go語言編程
- HoloLens與混合現實開發
- 零基礎學Python編程(少兒趣味版)
- 監控的藝術:云原生時代的監控框架
- 從零開始學UI:概念解析、實戰提高、突破規則
- Java Web開發基礎與案例教程
- Opa Application Development