@salesforce/plugin-apex
Version:
72 lines • 3.05 kB
JavaScript
/*
* Copyright 2026, Salesforce, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { LogService } from '@salesforce/apex-node';
import { SfCommand, requiredOrgFlagWithDeprecations, orgApiVersionFlagWithDeprecations, loglevel, } from '@salesforce/sf-plugins-core';
import { Messages } from '@salesforce/core';
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
const messages = Messages.loadMessages('@salesforce/plugin-apex', 'list');
export default class Log extends SfCommand {
static summary = messages.getMessage('summary');
static description = messages.getMessage('description');
static examples = messages.getMessages('examples');
static deprecateAliases = true;
static aliases = ['force:apex:log:list'];
static flags = {
'target-org': requiredOrgFlagWithDeprecations,
'api-version': orgApiVersionFlagWithDeprecations,
loglevel,
};
async run() {
const { flags } = await this.parse(Log);
const logService = new LogService(flags['target-org'].getConnection(flags['api-version']));
const logRecords = (await logService.getLogRecords()).map(formatStartTime);
if (logRecords.length === 0) {
this.log(messages.getMessage('noDebugLogsFound'));
return [];
}
if (!flags.json) {
// while not required to prevent table output, save a few iterations if only printing json
this.table({
data: logRecords.map(formatForTable),
columns: [
'Application',
{ key: 'DurationMilliseconds', name: 'Duration (ms)' },
'Id',
'Location',
{ key: 'LogLength', name: 'Size (B)' },
{ key: 'User', name: 'Log User' },
'Operation',
'Request',
{ key: 'StartTime', name: 'Start Time' },
'Status',
],
overflow: 'wrap',
});
}
return logRecords;
}
}
const formatForTable = (logRecord) => ({
...logRecord,
DurationMilliseconds: String(logRecord.DurationMilliseconds),
User: logRecord.LogUser.Name,
});
export const formatStartTime = (lr) => ({ ...lr, StartTime: formatTime(lr.StartTime) });
const formatTime = (time) => {
const msIndex = time.indexOf('.');
return msIndex !== -1 ? time.substring(0, msIndex) + time.substring(msIndex + 4) : time;
};
//# sourceMappingURL=log.js.map