2016-06-13 78 views
1

我想知道如何訪問Aurelia記錄器,只捕獲錯誤並觸發將數據發送到某個服務器的函數。 另外,我必須觸發警報框,通知用戶發生了一些錯誤。 這需要適用於我的整個應用程序。發送Aurelia錯誤日誌到服務器並通知用戶

到目前爲止,我發現我可以從日誌管理獲取日誌:在main.js

import {LogManager} from 'aurelia-framework';

,但我不知道如何訪問它,並創建一個自定義記錄器,將發送錯誤數據。 如果有人知道從哪裏可以找到有關該LogManager的更多信息以及如何與之交互,那也會有所幫助。 謝謝!

回答

5

你需要編寫一個自定義記錄器來做你想做的事情。這很簡單。只需使用ConsoleAppender作爲起點:https://github.com/aurelia/logging-console/blob/master/src/index.js

然後,您需要在啓動時向Aurelia註冊它。這是通過下面的代碼完成:

import {LogManager} from 'aurelia-framework'; 
import {CustomAppender} from './your-custom-code; 

LogManager.addAppender(new CustomAppender()); 
LogManager.setLevel(LogManager.logLevel.debug); 

export function configure(aurelia) { 
    aurelia.use 
    .defaultBindingLanguage() 
    .defaultResources() 
    .history() 
    .router() 
    .eventAggregator(); 

    aurelia.start().then(() => aurelia.setRoot('app', document.body)); 
} 

這是我們的文檔(但無可否認,我們可以改善搜索此)位置:http://aurelia.io/docs.html#/aurelia/framework/1.0.0-beta.1.2.4/doc/article/cheat-sheet只是按Ctrl-F的日誌管理。

+0

我做了一個自定義Appender,但如何測試它是否工作。當我嘗試產生一些錯誤時,它會碰到aurelia-pal.js,並且我在記錄器中沒有任何內容? 或者例如,如果某個請求出現錯誤,它會觸發aurelia-fetch-client.js。 如何捕捉那種錯誤,並有可能爲這些使用LogManager? –

+0

Hi @Ashley Grant。我有我的問題。我是Aurelia世界的新人。我在與main.ts相同的目錄中創建了Logger.js(index.js的副本)。我嘗試導入記錄器:從'./logger.js'導入{CustomAppender};我得到錯誤:「無法找到模塊」./logger「我做錯了什麼? – zchpit

+0

您可能不需要文件名末尾的.js。讓我知道如果這有幫助 –

相關問題