嵌入式linux設備中應用運行日誌的實現

嵌入式linux設備中應用運行日誌的實現

      最近在做一個項目時,需要記錄設備運行中情況,以方便對故障進行跟蹤定位,完善.所以決定採用記錄程序運行日誌,經過在網上搜索,採用Log4cplus+BOA方案,log4cplus記錄日誌,boa作爲web服務器,通過網頁的形式展示日誌信息.

      開發環境:嵌入式linux,C/C++,arm-fsl-linux-gnueabi-交叉編譯工具鏈,eclipse IDE

1.下載Log4cplus

略.

2.將log4cplus日誌功能加入應用中

a.編譯成庫文件(.so和.a)

(1).配置

#./confugure --prefix=/third_lib/log4cplus --host=arm-fsl-linux-gnueabi --enable-static

生成Makefile文件

#make

編譯源碼

#make install

安裝編譯好的庫文件

註解:

--prefix  設定安裝路徑

--host 設置編譯的目標平臺,根據此使用對應的編譯工具鏈,比如本項目使用的是:arm-fsl-linux-gnueabi-

--enable-static  設置編譯時生成靜態庫文件.a(默認情況--enable-static=no)

b.添加進應用

略.

3.搭建日誌展示平臺

a.搭建boa WEB平臺

略.

b.在html網頁中展示日誌

          生成的日誌是txt文本格式,最簡單的方法就是將整個日誌文件加載到網頁中進行展示.在網頁中加載展示txt的方法如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <link rel="canonical" href="https://blog.csdn.net/qq_31073871/article/details/81235665"/>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta name="renderer" content="webkit"/>
    <meta name="force-rendering" content="webkit"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta name="referrer" content="always">
    <meta http-equiv="Cache-Control" content="no-siteapp" /><link rel="alternate" media="handheld" href="#" />
    <meta name="shenma-site-verification" content="5a59773ab8077d4a62bf469ab966a63b_1497598848">
<pre style=”word-wrap: break-word; white-space: pre-wrap; white-space: -moz-pre-wrap” >
<title>SHOW TXT in  page</title>
<script type="text/javascript">
function initEvent(){
var divcontents=document.getElementById("content3");
vat txt=document.getElementById("textbox");
divcontents.innerText=txt.value;
}
</script>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> 
<script>
<!--
$(function(){
$("#content3").load('a.txt');
});
-->
</script>
</head>
<body onload="initEvent()">
<div id="content3">
</div>
<input type="text"  id="textbox" />
</body>
</html>

(1)防止中文顯示亂碼

第一.網頁支持中文顯示,

需要在網頁中加入:<meta http-equiv="content-type" content="text/html; charset=utf-8">

第二.日誌文件的編碼方式需和以上一致.如圖:

編碼方式統一爲:utf-8

(2).日誌自動換行問題

log4cplus生成的日誌是按行顯示的,但直接加載到網頁後全部混在一起了,看起來很亂,需要在網頁中加入如下語句:
<pre style=”word-wrap: break-word; white-space: pre-wrap; white-space: -moz-pre-wrap” >

至此,大功告成!!!!!!如下圖所示:

 

 

第一次在CSDN上發文總結項目中解決問題的過程和經驗,敘述邏輯有點亂,只是把關鍵的解決過程羅列出來,望大家諒解!!!!!!!!!!!!!! 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章