diff --git a/package-lock.json b/package-lock.json
index 9c6c4245..af9d1667 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -141,15 +141,6 @@
         "@types/uglify-js": "2.6.29"
       }
     },
-    "@types/winston": {
-      "version": "2.3.7",
-      "resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.3.7.tgz",
-      "integrity": "sha512-jNhbkxPtt9xbzvihfA0OavjJbpCIyTDSmwE03BVXgCKcz9lwNsq4cg2wsNkY4Av5eH35ttBArhYtVJa6CIrg2A==",
-      "dev": true,
-      "requires": {
-        "@types/node": "8.0.47"
-      }
-    },
     "JSONStream": {
       "version": "1.3.2",
       "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz",
@@ -1967,6 +1958,24 @@
         "object-visit": "1.0.1"
       }
     },
+    "color": {
+      "version": "0.8.0",
+      "resolved": "https://registry.npmjs.org/color/-/color-0.8.0.tgz",
+      "integrity": "sha1-iQwHw/1OZJU3Y4kRz2keVFi2/KU=",
+      "dev": true,
+      "requires": {
+        "color-convert": "0.5.3",
+        "color-string": "0.3.0"
+      },
+      "dependencies": {
+        "color-convert": {
+          "version": "0.5.3",
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz",
+          "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=",
+          "dev": true
+        }
+      }
+    },
     "color-convert": {
       "version": "1.9.1",
       "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
@@ -1982,18 +1991,43 @@
       "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
       "dev": true
     },
+    "color-string": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz",
+      "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=",
+      "dev": true,
+      "requires": {
+        "color-name": "1.1.3"
+      }
+    },
     "color-support": {
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
       "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
       "dev": true
     },
-    "colors": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
-      "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=",
+    "colornames": {
+      "version": "0.0.2",
+      "resolved": "https://registry.npmjs.org/colornames/-/colornames-0.0.2.tgz",
+      "integrity": "sha1-2BH9bIT1kClJmorEQ2ICk1uSvjE=",
       "dev": true
     },
+    "colors": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
+      "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
+      "dev": true
+    },
+    "colorspace": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.0.1.tgz",
+      "integrity": "sha1-yZx5btMRKLmHalLh7l7gOkpxl0k=",
+      "dev": true,
+      "requires": {
+        "color": "0.8.0",
+        "text-hex": "0.0.0"
+      }
+    },
     "combine-source-map": {
       "version": "0.7.2",
       "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz",
@@ -2855,6 +2889,17 @@
       "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=",
       "dev": true
     },
+    "diagnostics": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.0.tgz",
+      "integrity": "sha1-4QkJALSVI+hSe+IPCBJ1IF8q42o=",
+      "dev": true,
+      "requires": {
+        "colorspace": "1.0.1",
+        "enabled": "1.0.2",
+        "kuler": "0.0.0"
+      }
+    },
     "diff": {
       "version": "3.4.0",
       "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz",
@@ -3053,6 +3098,15 @@
       "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
       "dev": true
     },
+    "enabled": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz",
+      "integrity": "sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=",
+      "dev": true,
+      "requires": {
+        "env-variable": "0.0.3"
+      }
+    },
     "end-of-stream": {
       "version": "0.1.5",
       "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz",
@@ -3091,6 +3145,12 @@
       "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
       "dev": true
     },
+    "env-variable": {
+      "version": "0.0.3",
+      "resolved": "https://registry.npmjs.org/env-variable/-/env-variable-0.0.3.tgz",
+      "integrity": "sha1-uGwWQb5WECZ9UG8YBx6nbXBwl8s=",
+      "dev": true
+    },
     "errno": {
       "version": "0.1.6",
       "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz",
@@ -3460,6 +3520,12 @@
         "bser": "2.0.0"
       }
     },
+    "fecha": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.2.tgz",
+      "integrity": "sha1-Ng8DXdbt2VS8lYH5XypKfyo1BcE=",
+      "dev": true
+    },
     "file-loader": {
       "version": "0.8.5",
       "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.8.5.tgz",
@@ -6339,6 +6405,15 @@
         "is-buffer": "1.1.6"
       }
     },
+    "kuler": {
+      "version": "0.0.0",
+      "resolved": "https://registry.npmjs.org/kuler/-/kuler-0.0.0.tgz",
+      "integrity": "sha1-tmu0a5NOVQ9Z2BiEjgq7pPf1VTw=",
+      "dev": true,
+      "requires": {
+        "colornames": "0.0.2"
+      }
+    },
     "labeled-stream-splicer": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz",
@@ -6649,6 +6724,16 @@
         "lodash._reinterpolate": "3.0.0"
       }
     },
+    "logform": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/logform/-/logform-1.2.2.tgz",
+      "integrity": "sha512-a0TCbuqQWYhVdLie9f0tEP33bMxniAuw2StG1c5KhiTANm+RBRNpbSiGrNGpaiTZeoCiVWVsL+V5F0fpy7Q2Og==",
+      "dev": true,
+      "requires": {
+        "colors": "1.1.2",
+        "fecha": "2.3.2"
+      }
+    },
     "longest": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
@@ -7501,6 +7586,12 @@
         "wrappy": "1.0.2"
       }
     },
+    "one-time": {
+      "version": "0.0.4",
+      "resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz",
+      "integrity": "sha1-+M33eISCb+Tf+T46nMN7HkSAdC4=",
+      "dev": true
+    },
     "optimist": {
       "version": "0.6.1",
       "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
@@ -9276,6 +9367,12 @@
       "integrity": "sha512-AKXZeDq230UaSzaO5s3qQUZOaC7iKbzq0jOFL614R7d9R593HLqAOL0cYoqLdkNrjBSOdmoQI06yigq1TSBXAg==",
       "dev": true
     },
+    "text-hex": {
+      "version": "0.0.0",
+      "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-0.0.0.tgz",
+      "integrity": "sha1-V4+8haapJjbkLdF7QdAhjM6esrM=",
+      "dev": true
+    },
     "textextensions": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-1.0.2.tgz",
@@ -9473,6 +9570,12 @@
       "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
       "dev": true
     },
+    "triple-beam": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.1.0.tgz",
+      "integrity": "sha1-KsOHyMS9BL0mxh34kaYHn4WS/hA=",
+      "dev": true
+    },
     "ts-jest": {
       "version": "21.1.4",
       "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-21.1.4.tgz",
@@ -10766,27 +10869,27 @@
       "dev": true
     },
     "winston": {
-      "version": "2.4.0",
-      "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz",
-      "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=",
+      "version": "3.0.0-rc1",
+      "resolved": "https://registry.npmjs.org/winston/-/winston-3.0.0-rc1.tgz",
+      "integrity": "sha512-aNtKirnK2UEe5v56SK0TIEr5ylyYdXyjAaIJXZTk21UlNx7FQclTkVU2T1ZzMtdDM+Rk2b7vrI/e/4n8U84XaQ==",
       "dev": true,
       "requires": {
-        "async": "1.0.0",
-        "colors": "1.0.3",
-        "cycle": "1.0.3",
-        "eyes": "0.1.8",
+        "async": "1.5.2",
+        "diagnostics": "1.1.0",
         "isstream": "0.1.2",
-        "stack-trace": "0.0.10"
-      },
-      "dependencies": {
-        "async": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz",
-          "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=",
-          "dev": true
-        }
+        "logform": "1.2.2",
+        "one-time": "0.0.4",
+        "stack-trace": "0.0.10",
+        "triple-beam": "1.1.0",
+        "winston-transport": "3.0.1"
       }
     },
+    "winston-transport": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-3.0.1.tgz",
+      "integrity": "sha1-gAixXu9WYMT7P6CU1YzL0IUoxY0=",
+      "dev": true
+    },
     "word-wrap": {
       "version": "1.2.3",
       "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
diff --git a/package.json b/package.json
index cfb147a4..198f55d5 100644
--- a/package.json
+++ b/package.json
@@ -33,7 +33,6 @@
     "@types/node": "8.0.47",
     "@types/rimraf": "^2.0.2",
     "@types/webpack": "^3.8.1",
-    "@types/winston": "2.3.7",
     "async-promise-queue": "^1.0.4",
     "babel-core": "^6.26.0",
     "babel-preset-env": "^1.6.1",
@@ -67,7 +66,7 @@
     "uglifyjs-webpack-plugin": "^1.1.2",
     "unminified-webpack-plugin": "^1.4.2",
     "webpack": "^3.9.1",
-    "winston": "2.4.0"
+    "winston": "^3.0.0-rc1"
   },
   "jest": {
     "transform": {
diff --git a/scripts/build/helpers.ts b/scripts/build/helpers.ts
index 56f18d98..12074b74 100644
--- a/scripts/build/helpers.ts
+++ b/scripts/build/helpers.ts
@@ -58,7 +58,7 @@ export function getDecoratorArgs(decorator: any) {
         break;
 
       default:
-        Logger.error('Unexpected property value type: ', prop.initializer.kind);
+        Logger.debug('Unexpected property value type: ' + prop.initializer.kind);
         throw 'Unexpected property value type << helpers.ts >>';
     }
 
diff --git a/scripts/build/transformers/plugin-class.ts b/scripts/build/transformers/plugin-class.ts
index f3818054..bc8cda5a 100644
--- a/scripts/build/transformers/plugin-class.ts
+++ b/scripts/build/transformers/plugin-class.ts
@@ -5,7 +5,7 @@ import { transformMembers } from './members';
 
 function transformClass(cls: any, ngcBuild?: boolean) {
 
-  Logger.profile((ngcBuild ? '[ngc]' : '[esm]') + 'transformClass: ' + cls.name.text);
+  Logger.profile('transformClass: ' + cls.name.text);
 
     const pluginStatics = [];
     const dec: any = getDecorator(cls);
@@ -38,17 +38,16 @@ function transformClass(cls: any, ngcBuild?: boolean) {
       ]
     );
 
-    Logger.profile((ngcBuild ? '[ngc]' : '[esm]') + 'transformClass' + cls.name.text);
+    Logger.profile('transformClass: ' + cls.name.text, { level: 'verbose' });
     return cls;
 }
 
 function transformClasses(file: ts.SourceFile, ctx: ts.TransformationContext, ngcBuild?: boolean) {
-  // console.log('Transforming file: ' + file.fileName);
+  Logger.silly('Transforming file: ' + file.fileName);
   return ts.visitEachChild(file, node => {
     if (node.kind !== ts.SyntaxKind.ClassDeclaration) {
       return node;
     }
-
     return transformClass(node, ngcBuild);
   }, ctx);
 }
@@ -58,8 +57,7 @@ export function pluginClassTransformer(ngcBuild?: boolean): ts.TransformerFactor
     return tsSourceFile => {
       if (tsSourceFile.fileName.indexOf('src/@ionic-native/plugins') > -1)
         return transformClasses(tsSourceFile, ctx, ngcBuild);
-
       return tsSourceFile;
-    }
+    };
   };
 }
diff --git a/scripts/logger.ts b/scripts/logger.ts
index f60f2b1d..48829a72 100644
--- a/scripts/logger.ts
+++ b/scripts/logger.ts
@@ -1,24 +1,13 @@
-import * as winston from 'winston';
-import { isEmpty } from 'lodash';
+import { createLogger, transports, format } from 'winston';
+const { label, printf, prettyPrint, combine, colorize, simple } = format;
 
-const LOG_LEVEL = 'debug';
+const LOG_LEVEL = 'silly';
 
-export const Logger = new winston.Logger({
+export const Logger = createLogger({
   level: LOG_LEVEL,
-  transports: [
-    new winston.transports.Console({
-      level: 'debug',
-      formatter: (opts: any) => {
-        if (opts.meta) {
-          if (typeof opts.meta['durationMs'] === 'number') {
-            opts.message += ' ' + opts.meta['durationMs'] + 'ms';
-            delete opts.meta['durationMs'];
-          }
-          if (!isEmpty(opts.meta)) console.log(opts.meta);
-        }
-        return winston.config.colorize(opts.level, opts.level.toUpperCase()) + ' ' + opts.message;
-      }
-    })
-  ]
+  format: combine(
+    colorize(),
+    simple(),
+  ),
+  transports: [new transports.Console({ level: LOG_LEVEL })]
 });
-
diff --git a/scripts/tasks/build-es5.ts b/scripts/tasks/build-es5.ts
index 7392bdea..eaf077fd 100644
--- a/scripts/tasks/build-es5.ts
+++ b/scripts/tasks/build-es5.ts
@@ -69,11 +69,10 @@ function createIndexFile() {
 function compile() {
   Logger.profile('build-es5');
   webpack(webpackConfig, (err, stats) => {
-    Logger.profile('build-es5');
+    Logger.profile('build-es5', { level: 'verbose' });
     if (err) Logger.error('Error occurred while compiling with Webpack', err);
     else {
       Logger.info('Compiled ES5 file with Webpack successfully.');
-      // Logger.verbose('Webpack complete', stats, () => {});
     }
     cleanEmittedData();
   });