update code by review result.
This commit is contained in:
parent
4c08a527be
commit
757a39a75e
@ -210,7 +210,7 @@
|
||||
<data name="Success.SaveSiteSettings" xml:space="preserve">
|
||||
<value>Settings Saved Successfully</value>
|
||||
</data>
|
||||
<data name="ClearLogs" xml:space="preserve">
|
||||
<data name="ClearLogs.Text" xml:space="preserve">
|
||||
<value>Clear Logs</value>
|
||||
</data>
|
||||
<data name="Confirm.ClearLogs" xml:space="preserve">
|
||||
|
@ -37,7 +37,7 @@ namespace Oqtane.Services
|
||||
|
||||
public async Task ClearLogsAsync(int siteId)
|
||||
{
|
||||
await DeleteAsync($"{Apiurl}?siteid={siteId}&includeErrors=true");
|
||||
await DeleteAsync($"{Apiurl}?siteid={siteId}");
|
||||
}
|
||||
|
||||
public async Task Log(int? pageId, int? moduleId, int? userId, string category, string feature, LogFunction function, LogLevel level, Exception exception, string message, params object[] args)
|
||||
|
@ -79,11 +79,11 @@ namespace Oqtane.Controllers
|
||||
|
||||
[HttpDelete]
|
||||
[Authorize(Roles = RoleNames.Admin)]
|
||||
public void Delete(string siteId, bool includeErrors)
|
||||
public void Delete(string siteId)
|
||||
{
|
||||
if (int.TryParse(siteId, out int parsedSiteId) && parsedSiteId == _alias.SiteId)
|
||||
{
|
||||
_logs.DeleteLogs(parsedSiteId, 0, includeErrors);
|
||||
_logs.ClearLogs(parsedSiteId);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -8,6 +8,7 @@ namespace Oqtane.Repository
|
||||
IEnumerable<Log> GetLogs(int siteId, string level, string function, int rows);
|
||||
Log GetLog(int logId);
|
||||
void AddLog(Log log);
|
||||
int DeleteLogs(int siteId, int age, bool includeErrors = false);
|
||||
int DeleteLogs(int siteId, int age);
|
||||
void ClearLogs(int siteId);
|
||||
}
|
||||
}
|
||||
|
@ -53,23 +53,37 @@ namespace Oqtane.Repository
|
||||
db.SaveChanges();
|
||||
}
|
||||
|
||||
public int DeleteLogs(int siteId, int age, bool includeErrors = false)
|
||||
public int DeleteLogs(int siteId, int age)
|
||||
{
|
||||
using var db = _dbContextFactory.CreateDbContext();
|
||||
// delete logs in batches of 100 records
|
||||
var count = 0;
|
||||
var purgedate = DateTime.UtcNow.AddDays(-age);
|
||||
var logs = db.Log.Where(item => item.SiteId == siteId && (includeErrors || item.Level != "Error") && item.LogDate < purgedate)
|
||||
var logs = db.Log.Where(item => item.SiteId == siteId && item.Level != "Error" && item.LogDate < purgedate)
|
||||
.OrderBy(item => item.LogDate).Take(100).ToList();
|
||||
while (logs.Count > 0)
|
||||
{
|
||||
count += logs.Count;
|
||||
db.Log.RemoveRange(logs);
|
||||
db.SaveChanges();
|
||||
logs = db.Log.Where(item => item.SiteId == siteId && (includeErrors || item.Level != "Error") && item.LogDate < purgedate)
|
||||
logs = db.Log.Where(item => item.SiteId == siteId && item.Level != "Error" && item.LogDate < purgedate)
|
||||
.OrderBy(item => item.LogDate).Take(100).ToList();
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
public void ClearLogs(int siteId)
|
||||
{
|
||||
using var db = _dbContextFactory.CreateDbContext();
|
||||
var getLogsForDelete = () => db.Log.Where(item => item.SiteId == siteId).Take(100).ToList();
|
||||
// delete logs in batches of 100 records
|
||||
var logs = getLogsForDelete();
|
||||
while (logs.Count > 0)
|
||||
{
|
||||
db.Log.RemoveRange(logs);
|
||||
db.SaveChanges();
|
||||
logs = getLogsForDelete();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user