API: Add method for logging feature usage
authorBrad Jorsch <bjorsch@wikimedia.org>
Fri, 8 Aug 2014 09:37:02 +0000 (10:37 +0100)
committerLegoktm <legoktm.wikipedia@gmail.com>
Thu, 14 Aug 2014 23:39:03 +0000 (23:39 +0000)
For example, to determine usage levels of deprecated features.

Change-Id: Ifd640883e46f3e6c8179c63d122c704b046674ca

includes/api/ApiBase.php

index 05f91bc..db62be0 100644 (file)
@@ -2227,4 +2227,19 @@ abstract class ApiBase extends ContextSource {
                }
                print "\n</pre>\n";
        }
+
+       /**
+        * Write logging information for API features to a debug log, for usage
+        * analysis.
+        * @param string $feature Feature being used.
+        */
+       protected function logFeatureUsage( $feature ) {
+               $request = $this->getRequest();
+               $s = $feature .
+                       ' ' . wfUrlencode( str_replace( ' ', '_', $this->getUser()->getName() ) ) .
+                       ' ' . $request->getIP() .
+                       ' "' . $request->getHeader( 'Referer' ) . '"' .
+                       ' "' . $request->getHeader( 'User-agent' ) . '"';
+               wfDebugLog( 'api-feature-usage', $s, 'private' );
+       }
 }