0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

APEXをSublimeで設定 + ログをローカルに出力する方法

Last updated at Posted at 2017-10-04

APEXの開発をしていてデバッグログを確認する方法がSalesforce上で確認するしかなく、非常に使いづらかったので、MavensMate経由でローカルに出力するようにしました。

今回やりたいこと

・APEXをSublimeText + MavensMateで開発する環境を構築する
・APEXでログをローカルに出力

環境

Windows10 64bit
SublimeText3 + MavensMate(すでにインストールしていること)
※インストール出来ていない方は以下でインストールしてください。
SublimeText3 → https://www.sublimetext.com/3
MavensMate → https://github.com/joeferraro/MavensMate/tree/master/docs

Windowsの注意点

アカウント名で全角(例:山田太郎)を使うとエラーになります。もしアカウント名に全角を使っている場合はこの機会に新しくアカウントを作り直しましょう。

MavensMateの注意点

MavemsMateのサポートが終了したようです(2017/10/04現在)。本設定を行う方は自己責任でお願いします。

SublimeText側の設定

MavensMateのインストールを行います。
SublimeText3を開き、Command + Shift + P。するとこんな画面がでるので、
image.png
「install」と入力し、「Pachage Control: Install Package」が選択されていることを確認し、Enter キーを押します。
すると、パッケージの候補と共に、またフォームが表示されるのでmavens mateをインストールします。
image.png

MavensMate側の設定

MavensMate Desktopを開き、新規でプロジェクトを作成します。
image.png
開発はSandboxでしている前提で、開発環境に接続します。
Salesforce Environment TypeでSandboxを選択し、Connectボタンを押下します。
image.png
image.png
Sandboxに接続できたら次にworkspaceの設定を行います。
歯車のマークをおしてworkspace(開発するフォルダ)を設定します。
image.png
workspaceの場所はどこでもよいですが、特にこだわりがなければC:\Users\[ユーザ名]\workspaceなんかにしてけばOKです。ちなみにユーザ名に日本語は使えないので注意してください。
MavensMateでは(円マーク)はエスケープされてちゃうので、\で書き直してください。
image.png
指定した場所にフォルダの作成も忘れずにしてください。(自動で作成されたかもですが)
image.png
ここまで設定出来たらNew ProjectでCreate Projectをクリックしてください。
image.png
Edit Projectの画面でSelect allして、Update Projectをクリックしてください。
image.png
ソースがworkspaceに落ちていることを確認してください。
image.png

ログ出力の設定

  • MavensMateでCTRL+Shift+Pで「VBScript」をインストールします。

  • ログ出力用のフォルダを作成します。どこでもよいのですが、私はworkspaceに「debug」というフォルダを作成し、「logs」「log_archive」を作成しました。
    image.png

  • MavensMateの設定をします。以下のように設定画面でMAVENSMATE LOGS LOCATIONにログ出力フォルダを設定します。場所は「C:\Users\[ユーザ名]\AppData\Roaming\MavensMate-Desktop\Log」です。上記で作成したフォルダではないので注意してください。
    image.png

以上でデバッグログが出力されるようになります!
image.png

ログのローテート

今の設定ではログが吐き出しっぱなしなので、ローテートの設定を行います。

  • 以下のファイルをdebug配下に保存します。
delDir.bat
echo @off
set YYYYMMDD=%DATE:/=%
cd C:\Users\NaotoKoyama\workspace\プロジェクト名\debug\logs
findstr "CODE_UNIT_STARTED CODE_UNIT_FINISHED SOQL_EXECUTE_BEGIN SOQL_EXECUTE_END VF_SERIALIZE_VIEWSTATE_BEGIN VF_SERIALIZE_VIEWSTATE_END USER_DEBUG" .\*.log >> ..\log_archive\%YYYYMMDD%.txt
del /Q *.log
delDir.vbs
Set WSHShell = CreateObject("WScript.Shell")

WSHShell.Run "cmd.exe /c C:\Users\NaotoKoyama\workspace\プロジェクト名\debug\delDir.bat"

  • タスクスケジューラの設定を行います。
    コンピュータの管理でタスクの作成をクリックします。
    image.png
    image.png

トリガーの編集では毎日1時間毎に実行されるように設定します。
image.png

操作の編集では作成したVBScriptを設定します。
image.png
以上で毎日1時間毎にlogsフォルダのログがlog_archiveにローテートされます。

手動でローテートしたい場合はSublimeTextでdelDir.vbsを開いて、Ctrl + Bを押したらOKです。ただし初回のみ、表示 > シンタックス > VBScriptをチェックをする必要があります。
image.png
またローテートする際はfindstrの内容のみが抽出されるので、自分がローテートしたいものだけを設定も可能です。
image.png

ログが出力されない場合

まずはSalesforceのデバッグログでユーザ追跡フラグでログインユーザのアカウントがデバッグを出力する設定となっているか確認してください。
もしそれでも出力されない場合はMavensMateにログインしているかを確認してみてください。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?