Index: /branches/rel_ag_9_4_5/FreeBSD/src/sys/click/app/fastlog/fastlog_var.h
===================================================================
--- /branches/rel_ag_9_4_5/FreeBSD/src/sys/click/app/fastlog/fastlog_var.h	(revision 20363)
+++ /branches/rel_ag_9_4_5/FreeBSD/src/sys/click/app/fastlog/fastlog_var.h	(working copy)
@@ -1264,6 +1264,7 @@
 	SMANAGER_PARSE_LOGID_FAIL,
 	SMANAGER_ISSUE_LOGIN_REQ_FAIL,
 	SMANAGER_LOGIN_SUCCESS,
+	SMANAGER_ROLE_MATCH_FAIL_REASON,
 
 /****** End of Smanager log *************/
 
Index: /branches/rel_ag_9_4_5/FreeBSD/src/sys/click/app/fastlog/logex_def.h
===================================================================
--- /branches/rel_ag_9_4_5/FreeBSD/src/sys/click/app/fastlog/logex_def.h	(revision 20363)
+++ /branches/rel_ag_9_4_5/FreeBSD/src/sys/click/app/fastlog/logex_def.h	(working copy)
@@ -2391,6 +2391,11 @@
 		0, "User login successfully.",
 		NULL, NULL
 	},
+	{
+	  SMANAGER_ROLE_MATCH_FAIL_REASON, SMANAGER_BASE + 22, LOG_NOTICE, LOG_MOD_SMANAGER,
+	  4, "ROLE_MATCH_FAIL vsite (%s) role (%s) mismatched: username (%s), condition (%s).",
+	  NULL, NULL
+	},
 
 /*************** End of Smanager log ***************************/
 /*************** Begin ClientApp log *******************************/
Index: /branches/rel_ag_9_4_5/uproxy/http_proxy/smanager/smanager_role.c
===================================================================
--- /branches/rel_ag_9_4_5/uproxy/http_proxy/smanager/smanager_role.c	(revision 20359)
+++ /branches/rel_ag_9_4_5/uproxy/http_proxy/smanager/smanager_role.c	(working copy)
@@ -17,6 +17,7 @@
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
+#include <fastlog.h>
 
 #ifndef MPD_ONLY
 #include <amp_ulog.h>
@@ -350,6 +351,7 @@
 				/* TODO: some statistics need be added to log the status of role filter */
 				if (condi_filter(filter_p, condi_p) == CONDI_FILTER_FAIL) {
 					/* condition has AND relationship, so one condition mismatch, its qual mismatchc */
+					fastlog_logex(SMANAGER_ROLE_MATCH_FAIL_REASON, 4, vsite_name, qual_p->name, filter_p->username, condi_p->condition);
 					break;
 				}
 			}
