【小技】旧バージョンと同じ形式のMSCログファイルを出力する

Go down

【小技】旧バージョンと同じ形式のMSCログファイルを出力する Empty 【小技】旧バージョンと同じ形式のMSCログファイルを出力する

投稿 by miyako on 2019-03-27, 5:21 pm

Maintenance and Security Centerで検証・修復・圧縮などのオペレーションを実行すると,XML形式のログファイルが出力されます。

https://doc.4d.com/4Dv17/4D/17.1/Verify-page.300-4201085.ja.html

注記:検証・圧縮については,コマンドで実行することもでき,その場合,XMLファイルを出力する代わりに,コールバックメソッドで情報を受け取ることもできます。

https://doc.4d.com/4Dv17/4D/17.1/VERIFY-CURRENT-DATA-FILE.301-4179148.ja.html
https://doc.4d.com/4Dv17/4D/17.1/VERIFY-DATA-FILE.301-4179153.ja.html
https://doc.4d.com/4Dv17/4D/17.1/Compact-data-file.301-4179146.ja.html

ログファイルはXML形式なので,プログラムで解析するには向いていますが,ブラウザで開いてチェックするのは大変です。

それで,ログファイルをHTML形式で閲覧できるように,スタイルシートが使用されています。

32ビット版では,内部的にXSLT変換を実行し,XMLファイルと一緒に変換されたHTML形式のログファイルも出力されます。

64ビット版では,_o_XSLT APPLY TRANSFORMATIONが使用できないので,XMLと一緒にXSLスタイルシートのコピーが出力され,閲覧時にブラウザがHTML形式で表示できるようになっています。ブラウザは,どれもXSLT変換をサポートしているからです。

https://doc.4d.com/4Dv17/4D/17.1/o-XSLT-APPLY-TRANSFORMATION.301-4178574.ja.html

ローカルXSLスタイルシートのブロック

Safari 11(2017年の秋頃リリース)では,ブラウザのセキュリティ設定が強化され,ローカルファイルシステムのXSLスタイルシートが参照できないようになりました。(XML+XSL形式のログファイルを開こうとすると,真っ白なページが表示されます。)

Chromeでは,しばらく前から,同様の処置が取られており,起動時に--allow-file-access-from-filesオプションを指定しない限り,ローカルファイルシステムのXSLスタイルシートを参照することはできません。

Safariの場合,環境設定で「開発者メニュー」を有効にした上で「開発」メニューの「ローカルファイルの制限を無効にする」ことでローカルファイルシステムのXSLスタイルシートを許可することができます。

https://stackoverflow.com/questions/2981524/how-can-i-make-xslt-work-in-chrome/6251757#6251757

そのようなわけで,現バージョン(64ビット版)では,XSLスタイルシートではなく,CSSスタイルシートが出力されるようになりました。プログラミング言語であるXSLTとは違い,CSSは「無害な」外部ファイル参照とされているからです。

注記:アプリケーションビルドのログファイルには,CSSではなく,引き続きXSLスタイルシートが使用されています。

CSSで整形されたログファイルは,XMLよりは読みやすいとはいえ,HTMLではないので,

テキストの範囲選択が困難
ページ内で検索ができない

といった不都合があるのが実情です。

そこで,コマンドライン版のXSLT変換プログラムを使用し,旧バージョンと同じ形式のログファイルが出力できるような例題を公開しました。

https://github.com/miyako/4d-utility-classic-msc-log

変換によって出力されるのは,単品のHTMLファイルなので,Webエリアに表示したり,メールに添付して送信するのに向いています。

miyako

投稿数 : 348
登録日 : 2016/07/05

トップに戻る Go down

トップに戻る


 
Permissions in this forum:
返信投稿: 不可