2012-07-27 2 views
9

Im ищет эквивалент «tail -f», который запускается в браузере с помощью html5 или javascript.HTML5/websockets/просмотрщик журнала в реальном времени на основе javascript?

Для решения потребуется код на стороне клиента, написанный в HTML5/websockets/javascript и серверном приложении на стороне сервера. Я ищу один в C#, но я готов переписать его с php или python.

Это единственное, что я видел, что сближается является

http://commavee.com/2007/04/13/ajax-logfile-tailer-viewer/

Однако современные браузеры имеют WebSockets, что делает проблему гораздо проще.

http://www.websocket.org/echo.html

В идеале я хотел бы иметь некоторые из возможностей BareTail

http://www.baremetalsoft.com/baretail/

Такие, как цветовое кодирование строк, сортировка и многостраничных файлов табуляции.

Я находится подобные проводками, где кто-то ищет окна на основе программы файла журнал

https://stackoverflow.com/questions/113121/best-tail-log-file-visualization-freeware-tool

Кто-нибудь есть какие-либо предложения?

+0

Нашел хорошую запись на веб-сайтах HTML5. (Http://refcardz.dzone.com/refcardz/html5-websocket). У них есть список всех реализаций сервера websocket. Для C# (http://superwebsocket.codeplex.com) выглядит лучше. – mbalsam

+0

Эта статья (http: // stackoverflow.com/questions/9296466/options-for-real-time-web-notification-and-updates-using-comet-xmpp-vs-websocke) также дает несколько других мнений для серверов websocket. Но у моего приложения нет всех соображений производительности, которые должны иметь эти разработчики приложений. – mbalsam

+0

На стороне клиента мне бы хотелось что-то вроде этого (http://dhtmlx.com/docs/products/dhtmlxGrid/) – mbalsam

ответ

1

Это не совсем так, как хвост, но функция живых журналов https://log4sure.com позволяет вам отслеживать ваши журналы на стороне клиента в реальном времени. Вам нужно будет настроить и сделать журналы соответствующим образом, как вы это делали бы для хвоста, но вы можете увидеть все журналы с дополнительной информацией о вашем клиенте, пример браузера, os, страны и т. Д. Вы также можете создавать свои собственные журналы для записи материала , Оформить демоверсию на сайте, чтобы получить лучшую идею.

Код установки очень прост, и лучшая часть - это бесплатно.

// set up 
 
var _logServer; 
 

 
(function() { 
 
    var ls = document.createElement('script'); 
 
    ls.type = 'text/javascript'; 
 
    ls.async = true; 
 
    ls.src = 'https://log4sure.com/ScriptsExt/log4sure-0.1.min.js'; 
 
    var s = document.getElementsByTagName('script')[0]; 
 
    s.parentNode.insertBefore(ls, s); 
 
    ls.onload = function() { 
 
    // use your token here. 
 
    _logServer = new LogServer("use-your-token-here"); 
 
    }; 
 
})(); 
 

 
// example for logging text 
 
_logServer.logText("your log message goes here.") 
 

 
// example for logging error 
 
divide = function(numerator, divisor) { 
 
    try { 
 
     if (parseFloat(value) && parseFloat(divisor)) { 
 
     throw new TypeError("Invalid input", "myfile.js", 12, { 
 
      value: value, 
 
      divisor: divisor 
 
     }); 
 
     } else { 
 
     if (divisor == 0) { 
 
      throw new RangeError("Divide by 0", "myfile.js", 15, { 
 
      value: value, 
 
      divisor: divisor 
 
      }); 
 
     } 
 
     } 
 
    } catch (e) { 
 
     _logServer.logError(e.name, e.message, e.stack); 
 

 
    } 
 
    } 
 
    // another use of logError in window.onerror 
 
    // must be careful with window.onerror as you might be overwriting some one else's window.onerror functionality 
 
    // also someone else can overwrite window.onerror. 
 
window.onerror = function(msg, url, line, column, err) { 
 
    // may want to check if url belongs to your javascript file 
 
    var data = { 
 
    url: url, 
 
    line: line, 
 
    column: column, 
 

 
    } 
 
    _logServer.logError(err.name, err.message, err.stack, data); 
 

 
}; 
 

 
//example for custom logs 
 
var foo = "some variable value"; 
 
var bar = "another variable value"; 
 
var flag = "false"; 
 
var temp = "yet another variable value"; 
 

 
_logServer.log(foo, bar, flag, temp);

1

В то время как я хочу это было лучше JSON объект приукрашивание для живых хвостохранилищ и исторических журналов, следующих клиентских работ JS и поддерживает ваши требования на стороне сервера также:

https://github.com/logentries/le_js/wiki/API

<html lang="en"> 
    <head> 
    <title>Your page</title> 
    <script src="/js/le.min.js"></script> 
    <script> 
    // Set up le.js 
    LE.init('YOUR-LOG-TOKEN'); 
    </script> 
</head> 

.....

<script> 
// log something 
LE.log("Hello, logger!"); 
</script> 

Лично получить код выше, чтобы работать, однако, я должен добавить следующую строку кода прямо над LE.init('YOUR-LOG-TOKEN'):

window.LEENDPOINT = 'js.logentries.com/v1' 

.. Кроме того, Loggly может быть нужным, а также: https://www.loggly.com/docs/javascript/

Смежные вопросы