3.25.2010

Celog : log on local files

Enable Celog 並且log 到 localfile

在 project option enable celog 和 celogflush 後,
設定部份要參考
http://msdn.microsoft.com/en-US/library/ee481192%28v=WinEmbedded.60%29.aspx

很好心的列出 log 在 SDCard 的方法..

但是我照著作卻不會成功,有一篇在 newsgroupe 的說明好像是說 在 system/init 啟動的 celogflush 太早,常常不能正確的 access registry setting,所以會不正確...

還有如果log到 localfile,又是 physical storage(不是ram)的話,要注意,當 celogflush 啟動的時候,一堆 storage都還沒mount 起來.......(唉~~)




另外一個,手動啟動的方法,不用 rebuild OS (所以 boot message log 不到)
http://msdn.microsoft.com/en-us/library/ms905191.aspx
  • Copy CeLog.dll and CeLogFlush.exe 到 \Windows 目錄
  • 在 SD 上 creatr 一個 "flush.lnk",內容是
    83#\Windows\celogflush.exe -buf 0x100000 -time 60000 -n \celog.clg -z 0x00800000 -ui 1
    對應的reg 設定是:

    [HKEY_LOCAL_MACHINE\System\CeLog]
    "Transport"="LocalFile"
    "FileName"="\\celog.clg"
    "ZoneCE"=dword:"00800000"
    "BufferSize"=dword:"100000"
    "UseUI"=dword:1
    這一個在system boots 時不能設1,因為GWES還沒起來。
  • 插入SD card,double click flush.lnk
會有一個 dialog 顯示log 到 \celog.clg

看 celog.clg 內容的方法:
  • 到 \ 去看(因為剛剛指定 \celog.clg),可以找到 celog.clg,copy 到 SD card
  • 開啟 VS2005 - platformbuilder -- open reslease directory
  • 在 dos prompt 下command
  • readlog celog.clf output.txt
..

所以為了避免麻煩,把celog.dll, celogflush.exe 放進 kernel image 好了..
如果是XIP的話,要放在 boot 的 bin part
也就是要改 makexip.js

沒有留言: