Ben zamanında loglevel değiştirmek için $log.debug(...)
dekore ettik.
Enhancing AngularJS Logging using Decorators baktığımızda, aşağıdaki kod parçacığı için fikrim var:
(function() {
var KEY = "debugEnabled";
angular.module("service.config", [])
.config(function ($provide, $logProvider) {
// AngularJS has debug enabled by default, but just to be sure...
$logProvider.debugEnabled(true);
// Disabling localStorageDebug (if not set)
if (localStorage.getItem(KEY) === null) {
localStorage.setItem(KEY, "false");
}
// add a check for localStorageDebug before actually calling $log.debug(...)
$provide.decorator('$log', function ($delegate) {
var debugFunction = $delegate.debug;
$delegate.debug = function() {
if (localStorage.getItem(KEY) !== "false") {
debugFunction.apply(undefined, arguments)
}
};
return $delegate;
});
})
.service("ConfigService", function ($log) {
this.debugEnabled = function (flag) {
$log.info("Setting debugEnabled to " + flag);
localStorage.setItem(KEY, flag.toString());
}
});
})();
// exposing ConfigService to global scope (be aware of possible clashes!),
// therefore making it easily accessible from the console
var cfg;
window.onload = function() {
cfg = angular.element(document.body).injector().get("ConfigService");
};
dekoratör sadece ileriye debugEnabled
yerel depolama true
olarak ayarlanırsa $log.debug
çağrıları - değeri üzerinden değiştirilebilir ConfigService
servisi.
Artık, loglevel'i değiştirmek için sunucunuzdan yüklediğiniz değerle ConfigService#debugEnabled
numaralı telefonu arayabilirsiniz.
Son dört satır sayesinde, çalışma zamanında hata ayıklama modunu etkinleştirmek için konsolunuzda cfg.debugEnabled(true)
'u da arayabilirsiniz.
Konsola yazı yazmak istemiyorsanız, genel cfg
'dan kaçınabilirsiniz ve günlük düzeyini değiştirmek için javascript yer işaretlerini (veya web sitenizdeki öğeleri) kullanabilirsiniz.
Teşekkürler, uygulama yapılandırmasını değiştirdim. Ayarı temel olarak bir JavaScript dosyasına koydum, böylece başlangıçta tüm ayarlarım var. Tekrar teşekkürler! – stevo