Here is a one-liner to get you started:
perl -E 'my ($datetime, $mpnum, $msisdn) =
$ARGV[0]=~/^([\d\-]+\s[\d:,]+).+\[MP(\d{14})\].+msisdn\s:\s(\d+)/;
say for ($datetime,$mpnum,$msisdn)'
'2015-03-27 20:39:49,796 ERROR MPesa 7002 webServices 10.201.12.200- [
+MP27203801969209][301a8a0e-bb59-4182-9a4b-79abbb3ed39a][payBillRechar
+geAllOperator][McomSendSMSServiceImpl][callSpiceSMSApi] - Exit Metho
+d with status Map : {smsFlag=true, errorMsgs=null, status=SUCCESS} fo
+r msisdn : 9431641426'
__Output__
2015-03-27 20:39:49,796
27203801969209
9431641426
Clarity: it's like that one thing that is not the other thing, except for when it is.