diff --git a/libsensors/MPLSensor.cpp b/libsensors/MPLSensor.cpp
index d3d8df9..314acfb 100644
--- a/libsensors/MPLSensor.cpp
+++ b/libsensors/MPLSensor.cpp
@@ -59,9 +59,9 @@
 #include "sensor_params.h"
 
 #define EXTRA_VERBOSE (0)
-//#define FUNC_LOG ALOGV("%s", __PRETTY_FUNCTION__)
+//#define FUNC_LOG LOGV("%s", __PRETTY_FUNCTION__)
 #define FUNC_LOG
-#define VFUNC_LOG ALOGV_IF(EXTRA_VERBOSE, "%s", __PRETTY_FUNCTION__)
+#define VFUNC_LOG LOGV_IF(EXTRA_VERBOSE, "%s", __PRETTY_FUNCTION__)
 /* this mask must turn on only the sensors that are present and managed by the MPL */
 #define ALL_MPL_SENSORS_NP (INV_THREE_AXIS_ACCEL | INV_THREE_AXIS_COMPASS | INV_THREE_AXIS_GYRO)
 
@@ -156,7 +156,7 @@
     int mpu_int_fd, i;
     char *port = NULL;
 
-    ALOGV_IF(EXTRA_VERBOSE, "MPLSensor constructor: numSensors = %d", numSensors);
+    LOGV_IF(EXTRA_VERBOSE, "MPLSensor constructor: numSensors = %d", numSensors);
 
     pthread_mutex_init(&mMplMutex, NULL);
 
@@ -322,7 +322,7 @@
             if (nread > 0) {
                 irq_set[i] = true;
                 irq_timestamp = irqdata.irqtime;
-                //ALOGV_IF(EXTRA_VERBOSE, "irq: %d %d (%d)", i, irqdata.interruptcount, j++);
+                //LOGV_IF(EXTRA_VERBOSE, "irq: %d %d (%d)", i, irqdata.interruptcount, j++);
             }
         }
         mPollFds[i].revents = 0;
@@ -337,7 +337,7 @@
     FUNC_LOG;
     bool irq_set[5] = { false, false, false, false, false };
 
-    //ALOGV(" setPowerStates: %d dmp_started: %d", enabled_sensors, mDmpStarted);
+    //LOGV(" setPowerStates: %d dmp_started: %d", enabled_sensors, mDmpStarted);
 
     do {
 
@@ -382,7 +382,7 @@
 
     if (changing_sensors || restart) {
 
-        ALOGV_IF(EXTRA_VERBOSE, "cs:%d rs:%d ", changing_sensors, restart);
+        LOGV_IF(EXTRA_VERBOSE, "cs:%d rs:%d ", changing_sensors, restart);
 
         if (mDmpStarted) {
             inv_dmp_stop();
@@ -391,7 +391,7 @@
         }
 
         if (sen_mask != inv_get_dl_config()->requested_sensors) {
-            //ALOGV("setPowerStates: %lx", sen_mask);
+            //LOGV("setPowerStates: %lx", sen_mask);
             rv = inv_set_mpu_sensors(sen_mask);
             LOGE_IF(rv != INV_SUCCESS,
                     "error: unable to set MPL sensor power states (sens=%ld retcode = %d)",
@@ -401,14 +401,14 @@
         if (((mUsetimerIrqCompass && (sen_mask == INV_THREE_AXIS_COMPASS))
                 || (mUseTimerIrqAccel && (sen_mask & INV_THREE_AXIS_ACCEL)))
                 && ((sen_mask & INV_DMP_PROCESSOR) == 0)) {
-            ALOGV_IF(EXTRA_VERBOSE, "Allowing TimerIRQ");
+            LOGV_IF(EXTRA_VERBOSE, "Allowing TimerIRQ");
             mUseTimerirq = true;
         } else {
             if (mUseTimerirq) {
                 ioctl(mIrqFds.valueFor(TIMERIRQ_FD), TIMERIRQ_STOP, 0);
                 clearIrqData(irq_set);
             }
-            ALOGV_IF(EXTRA_VERBOSE, "Not allowing TimerIRQ");
+            LOGV_IF(EXTRA_VERBOSE, "Not allowing TimerIRQ");
             mUseTimerirq = false;
         }
 
@@ -420,7 +420,7 @@
                 mHaveGoodMpuCal = false;
                 mHaveGoodCompassCal = false;
             }
-            //ALOGV("Starting DMP");
+            //LOGV("Starting DMP");
             rv = inv_dmp_start();
             LOGE_IF(rv != INV_SUCCESS, "unable to start dmp");
             mDmpStarted = true;
@@ -429,7 +429,7 @@
 
     //check if we should stop the DMP
     if (mDmpStarted && (sen_mask == 0)) {
-        //ALOGV("Stopping DMP");
+        //LOGV("Stopping DMP");
         rv = inv_dmp_stop();
         LOGE_IF(rv != INV_SUCCESS, "error: unable to stop DMP (retcode = %d)",
                 rv);
@@ -594,7 +594,7 @@
 {
     mNewData = 1;
     mSampleCount++;
-    //ALOGV_IF(EXTRA_VERBOSE, "new data (%d)", sampleCount);
+    //LOGV_IF(EXTRA_VERBOSE, "new data (%d)", sampleCount);
 }
 
 //these handlers transform mpl data into one of the Android sensor types
@@ -624,7 +624,7 @@
     s->acceleration.v[0] = s->acceleration.v[0] * 9.81;
     s->acceleration.v[1] = s->acceleration.v[1] * 9.81;
     s->acceleration.v[2] = s->acceleration.v[2] * 9.81;
-    //ALOGV_IF(EXTRA_VERBOSE, "accel data: %f %f %f", s->acceleration.v[0], s->acceleration.v[1], s->acceleration.v[2]);
+    //LOGV_IF(EXTRA_VERBOSE, "accel data: %f %f %f", s->acceleration.v[0], s->acceleration.v[1], s->acceleration.v[2]);
     s->acceleration.status = SENSOR_STATUS_ACCURACY_HIGH;
     if (res == INV_SUCCESS)
         *pending_mask |= (1 << index);
@@ -809,7 +809,7 @@
 int MPLSensor::enable(int32_t handle, int en)
 {
     FUNC_LOG;
-    //ALOGV("handle : %d en: %d", handle, en);
+    //LOGV("handle : %d en: %d", handle, en);
 
     int what = -1;
 
@@ -845,7 +845,7 @@
 
     int newState = en ? 1 : 0;
     int err = 0;
-    //ALOGV_IF((uint32_t(newState) << what) != (mEnabled & (1 << what)),
+    //LOGV_IF((uint32_t(newState) << what) != (mEnabled & (1 << what)),
     //        "sensor state change what=%d", what);
 
     pthread_mutex_lock(&mMplMutex);
@@ -854,7 +854,7 @@
         short flags = newState;
         mEnabled &= ~(1 << what);
         mEnabled |= (uint32_t(flags) << what);
-        ALOGV_IF(EXTRA_VERBOSE, "mEnabled = %x", mEnabled);
+        LOGV_IF(EXTRA_VERBOSE, "mEnabled = %x", mEnabled);
         setPowerStates(mEnabled);
         pthread_mutex_unlock(&mMplMutex);
         if (!newState)
@@ -868,7 +868,7 @@
 int MPLSensor::setDelay(int32_t handle, int64_t ns)
 {
     FUNC_LOG;
-    ALOGV_IF(EXTRA_VERBOSE,
+    LOGV_IF(EXTRA_VERBOSE,
             " setDelay handle: %d rate %d", handle, (int) (ns / 1000000LL));
     int what = -1;
     switch (handle) {
@@ -958,12 +958,12 @@
                         == INV_THREE_AXIS_COMPASS) {
                     ioctl(mIrqFds.valueFor(TIMERIRQ_FD), TIMERIRQ_START,
                           (unsigned long) (wanted / 1000000LLU));
-                    ALOGV_IF(EXTRA_VERBOSE, "updated timerirq period to %d",
+                    LOGV_IF(EXTRA_VERBOSE, "updated timerirq period to %d",
                             (int) (wanted / 1000000LLU));
                 } else {
                     ioctl(mIrqFds.valueFor(TIMERIRQ_FD), TIMERIRQ_START,
                           (unsigned long) inv_get_sample_step_size_ms());
-                    ALOGV_IF(EXTRA_VERBOSE, "updated timerirq period to %d",
+                    LOGV_IF(EXTRA_VERBOSE, "updated timerirq period to %d",
                             (int) inv_get_sample_step_size_ms());
                 }
             }
@@ -981,7 +981,7 @@
     struct timespec ts;
 
     clock_gettime(CLOCK_MONOTONIC, &ts);
-    //ALOGV("Time %lld", (int64_t)ts.tv_sec * 1000000000 + ts.tv_nsec);
+    //LOGV("Time %lld", (int64_t)ts.tv_sec * 1000000000 + ts.tv_nsec);
     return (int64_t) ts.tv_sec * 1000000000 + ts.tv_nsec;
 }
 
@@ -999,21 +999,21 @@
 
     pthread_mutex_lock(&mMplMutex);
     if (mDmpStarted) {
-        //ALOGV_IF(EXTRA_VERBOSE, "Update Data");
+        //LOGV_IF(EXTRA_VERBOSE, "Update Data");
         rv = inv_update_data();
         LOGE_IF(rv != INV_SUCCESS, "inv_update_data error (code %d)", (int) rv);
     }
 
     else {
         //probably just one extra read after shutting down
-        ALOGV_IF(EXTRA_VERBOSE,
+        LOGV_IF(EXTRA_VERBOSE,
                 "MPLSensor::readEvents called, but there's nothing to do.");
     }
 
     pthread_mutex_unlock(&mMplMutex);
 
     if (!mNewData) {
-        ALOGV_IF(EXTRA_VERBOSE, "no new data");
+        LOGV_IF(EXTRA_VERBOSE, "no new data");
         return 0;
     }
     mNewData = 0;
@@ -1046,26 +1046,26 @@
 
 int MPLSensor::getFd() const
 {
-    //ALOGV("MPLSensor::getFd returning %d", data_fd);
+    //LOGV("MPLSensor::getFd returning %d", data_fd);
     return data_fd;
 }
 
 int MPLSensor::getAccelFd() const
 {
-    //ALOGV("MPLSensor::getAccelFd returning %d", accel_fd);
+    //LOGV("MPLSensor::getAccelFd returning %d", accel_fd);
     return accel_fd;
 }
 
 int MPLSensor::getTimerFd() const
 {
-    //ALOGV("MPLSensor::getTimerFd returning %d", timer_fd);
+    //LOGV("MPLSensor::getTimerFd returning %d", timer_fd);
     return timer_fd;
 }
 
 int MPLSensor::getPowerFd() const
 {
     int hdl = (int) inv_get_serial_handle();
-    //ALOGV("MPLSensor::getPowerFd returning %d", hdl);
+    //LOGV("MPLSensor::getPowerFd returning %d", hdl);
     return hdl;
 }
 
diff --git a/mlsdk/platform/include/log.h b/mlsdk/platform/include/log.h
index 8485074..2c36e55 100644
--- a/mlsdk/platform/include/log.h
+++ b/mlsdk/platform/include/log.h
@@ -284,7 +284,7 @@
 #ifndef MPL_LOG_PRI
 #ifdef ANDROID
 #define MPL_LOG_PRI(priority, tag, fmt, ...) \
-        ALOG(priority, tag, fmt, ##__VA_ARGS__)
+	LOG(priority, tag, fmt, ##__VA_ARGS__)
 #elif defined __KERNEL__
 #define MPL_LOG_PRI(priority, tag, fmt, ...) \
 	pr_debug(MPL_##priority tag fmt, ##__VA_ARGS__)
