Skip to content

Instantly share code, notes, and snippets.

@402332509
Last active July 15, 2019 09:49
Show Gist options
  • Save 402332509/0f96ff386348f1dea545bd3a98021947 to your computer and use it in GitHub Desktop.
Save 402332509/0f96ff386348f1dea545bd3a98021947 to your computer and use it in GitHub Desktop.
Truly delete all Apex logs in your org.
var loadScript = (src)=>{
return new Promise( (resolve, reject)=>{
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = src;
script.onload = resolve;
script.onerror = reject;
document.head.appendChild(script);
} );
}
var loadScripts = (urls)=>{
return Promise.all(urls.map(url=>{return loadScript(url);}));
}
var queryRows = async (query)=>{
return new Promise ((resolve,reject)=>{
sforce.connection.query(query,{
onSuccess: resolve,
onFailure: reject,
} );
});
}
var queryMoreRows = async (queryLocator)=>{
return new Promise((resolve, reject)=>{
sforce.connection.queryMore(queryLocator, {
onSuccess: resolve,
onFailure: reject,
});
});
}
var queryLogs = async (query)=>{
console.log(query);
var logs= [];
result = await queryRows(query);
console.log(result);
result.records.map(row=>logs.push({
Id: row.Id
}));
while(result.queryLocator){
result = await queryMoreRows(result.queryLocator);
console.log(result);
result.records.map(row=>logs.push({
Id: row.Id
}));
}
return logs;
}
var deleteLog = (id)=>{
return axios.delete(`/services/data/v44.0/sobjects/ApexLog/${id}`,{
headers: {'Authorization': 'Bearer ' + sforce.connection.sessionId},
});
}
var chunk = (arr, count) => {
var newArray = [];
while (arr.length > 0) {
newArray.push(arr.splice(0, count));
}
return newArray;
}
loadScripts([
'/soap/ajax/44.0/connection.js',
'https://unpkg.com/axios/dist/axios.min.js'
])
.then(()=>{
sforce.connection.sessionId = window.getCookie('sid');
console.log(sforce.connection.sessionId);
var apexlogs = [];
var query = `
select Id from ApexLog
`;
(async (query)=>{
var result = await queryLogs(query);
console.log(result);
var acc = 0 ;
total = result.length;
chunk(result,50).reduce((promise,chunk)=>{
return promise.then(response=>{
acc += chunk.length;
console.log('deleted ', acc, '/', total, chunk);
return Promise.all(chunk.map(row=>{
return deleteLog(row.Id);
}));
});
},Promise.resolve());
})(query);
});
@402332509
Copy link
Author

402332509 commented Jul 11, 2019

登录后在任意SF页面将代码粘贴到 chrome console 里运行即可

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment