Включить имена модулей и контроллеров AngularJS в вывод $log?
Я изучаю варианты ведения журналов и соглашения в AngularJS. Я хотел бы мой $log
вывод, чтобы содержать как module
а также controller
имена (аналогично регистраторам в Log4j). С кодом ниже, я смог ввести controller
имя в $scope
var app = angular.module("demo", []);
app.config(['$provide', function ($provide) {
$provide.decorator('$controller', [
'$delegate',
function ($delegate) {
return function(constructor, locals) {
if (angular.isString(constructor)) {
locals.$scope.controllerName = constructor;
}
return $delegate(constructor, locals);
}
}]);
}]);
app.controller('SampleCtrl', ['$scope', '$log', function ($scope, $log) {
$log.log("[" + app.name + "." + $scope.controllerName +"] got here");
}]);
Я хотел бы решить эту проблему лучше. В частности:
- Есть ли лучший способ получить доступ к
controller
назовите, добавив его в$scope
? - Есть ли способ получить
module
имя вместо получения "демо" из.name
свойство модуляapp
? - Подобно Enhancing $ log в AngularJs, это простой способ, который является лучшим способом для вставки форматирования, например, добавив "[module.controller]" в
$log.log()
звонки?