Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import log from 'loglevel';
- const message = `
- GIVE THIS COMPONENT A NAME:
- export default {
- name: 'A GREAT NAME',
- }
- `;
- const originalFactory = log.methodFactory;
- log.methodFactory = function loggerFactory(methodName, logLevel, loggerName) {
- const rawMethod = originalFactory(methodName, logLevel, loggerName);
- const flag = /^_UNNAMED/.test(loggerName);
- return function logMessage(...messages) {
- if (flag) {
- log.warn(message);
- }
- rawMethod(`${loggerName}: `, ...messages);
- };
- };
- let LEVEL;
- if (process.env.LOG_LEVEL) {
- LEVEL = process.env.LOG_LEVEL;
- log.setDefaultLevel(process.env.LOG_LEVEL);
- } else {
- if (process.env.NODE_ENV === 'production') {
- log.setDefaultLevel(log.levels.ERROR);
- LEVEL = log.levels.ERROR;
- } else {
- log.setDefaultLevel(log.levels.DEBUG);
- LEVEL = log.levels.DEBUG;
- }
- }
- export const logger = {
- install(Vue) {
- Vue.log = log;
- Vue.mixin({
- created() {
- /* eslint-disable no-underscore-dangle */
- this.log = log.getLogger(this.$options.name || `_UNNAMED COMPONENT ${this._uid}`);
- /* eslint-enable */
- if (this.logLevel) {
- this.log.setLevel(this.logLevel);
- } else {
- this.log.setLevel(LEVEL);
- }
- },
- data() {
- return {
- log: {},
- };
- },
- });
- },
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement