Skip to content

Commit 82e4ac4

Browse files
authored
CXM-5555: UrlPurger function to log variable values and disable trigger on startup (#19)
https://storis.atlassian.net/browse/CXM-5555 Fixed issue where variable values were not being incorporated into logs. Set UrlPurger function's RunOnStartup param to false. Updated the NLogWrapper classes log method to accept an unknown number of replacement values.
1 parent d0c7237 commit 82e4ac4

File tree

3 files changed

+12
-13
lines changed

3 files changed

+12
-13
lines changed

src/api/function/UrlPurger.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,18 @@ public UrlPurger(ILoggerFactory loggerFactory, AdminApiSettings settings)
2020
}
2121

2222
[Function("UrlPurger")]
23-
public async Task Run([TimerTrigger("0 0 6 * * *", RunOnStartup = true)] MyInfo myTimer)
23+
public async Task Run([TimerTrigger("0 0 6 * * *", RunOnStartup = false)] MyInfo myTimer)
2424
{
25-
logger.Log(NLog.LogLevel.Info, "C# Timer trigger function executed at {trigger.current}", DateTime.Now.ToString());
26-
logger.Log(NLog.LogLevel.Info, "Next timer scheduled for {trigger.next}", myTimer.ScheduleStatus.Next.ToString());
25+
logger.Log(NLog.LogLevel.Info, "C# Timer trigger function executed at {0}", DateTime.Now.ToString());
26+
logger.Log(NLog.LogLevel.Info, "Next timer scheduled for {0}", myTimer.ScheduleStatus.Next.ToString());
2727

2828
var storageTableHelper = new StorageTableHelper(_adminApiSettings.UlsDataStorage);
2929
var urlsToPurge = await storageTableHelper.GetShortUrlEntitiesToPurge(7);
3030
foreach (var urlToPurge in urlsToPurge)
3131
{
3232

33-
logger.Log(NLog.LogLevel.Info, "Deleting ShortUrl: {urlToPurge.ShortUrl} | Title: {urlToPurge.Title} | CreatedAt: {urlToPurge.Timestamp}", urlToPurge.RowKey, urlToPurge.Title, urlToPurge.Timestamp.ToString());
33+
logger.Log(NLog.LogLevel.Info, "Deleting ShortUrl: {0} | Title: {1} | CreatedAt: {2}",
34+
urlToPurge.RowKey, urlToPurge.Title, urlToPurge.Timestamp.ToString());
3435

3536
await storageTableHelper.DeleteShortUrlEntity(urlToPurge);
3637
}

src/api/function/UrlShortener.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ ExecutionContext context
8686
// Validates if input.url is a valid aboslute url, aka is a complete refrence to the resource, ex: http(s)://google.com
8787
if (!Uri.IsWellFormedUriString(input.Url, UriKind.Absolute))
8888
{
89-
logger.Log(NLog.LogLevel.Warn, "{url.longUrl} is not a valid absolute Url. The Url parameter must start with 'http://' or 'https://'.", input.Url);
89+
logger.Log(NLog.LogLevel.Warn, "{0} is not a valid absolute Url. The Url parameter must start with 'http://' or 'https://'.", input.Url);
9090
var badResponse = req.CreateResponse(HttpStatusCode.BadRequest);
9191
await badResponse.WriteAsJsonAsync(new { message = $"{input.Url} is not a valid absolute Url. The Url parameter must start with 'http://' or 'https://'." });
9292
return badResponse;
@@ -106,7 +106,7 @@ ExecutionContext context
106106
newRow = new ShortUrlEntity(longUrl, vanity, title, input.Schedules);
107107
if (await stgHelper.IfShortUrlEntityExist(newRow))
108108
{
109-
logger.Log(NLog.LogLevel.Warn, "The Short URL {url.shortUrl} already exists.", vanity);
109+
logger.Log(NLog.LogLevel.Warn, "The Short URL {0} already exists.", vanity);
110110
var badResponse = req.CreateResponse(HttpStatusCode.Conflict);
111111
await badResponse.WriteAsJsonAsync(new { message = $"The Short URL {vanity} already exists." });
112112
return badResponse;
@@ -122,11 +122,11 @@ ExecutionContext context
122122
var host = string.IsNullOrEmpty(_adminApiSettings.customDomain) ? req.Url.Host : _adminApiSettings.customDomain.ToString();
123123
result = new ShortResponse(host, newRow.Url, newRow.RowKey, newRow.Title);
124124

125-
logger.Log(NLog.LogLevel.Info, "Short Url {url.shortUrl} for url {url.longUrl} created", newRow.RowKey, longUrl);
125+
logger.Log(NLog.LogLevel.Info, "Short Url {0} for url {1} created", newRow.RowKey, longUrl);
126126
}
127127
catch (Exception ex)
128128
{
129-
logger.Log(NLog.LogLevel.Error, "An unexpected error was encountered: {message}", ex.Message);
129+
logger.Log(NLog.LogLevel.Error, "An unexpected error was encountered: {0}", ex.Message);
130130
var badResponse = req.CreateResponse(HttpStatusCode.BadRequest);
131131
await badResponse.WriteAsJsonAsync(new { message = ex.Message });
132132
return badResponse;

src/lib/NLogWrapper.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
using System;
2-
using System.Web;
3-
using Cloud5mins.domain;
1+
using Cloud5mins.domain;
42
using NLog;
53

64
public enum LoggerType
@@ -23,7 +21,7 @@ public NLogWrapper(LoggerType loggerType, AdminApiSettings settings)
2321
initializeLogger(loggerType, settings);
2422
}
2523

26-
public void Log(LogLevel logLevel, String message, string arg1 = null, string arg2 = null, string arg3 = null)
24+
public void Log(LogLevel logLevel, String message, params object[] args)
2725
{
2826
NLog.LogManager.Configuration = new NLog.Config.XmlLoggingConfiguration("NLog.config");
2927
var configuration = LogManager.Configuration;
@@ -35,7 +33,7 @@ public void Log(LogLevel logLevel, String message, string arg1 = null, string ar
3533

3634
getCallerName();
3735

38-
logger.Log(logLevel, message, arg1, arg2);
36+
logger.Log(logLevel, message, args);
3937
}
4038

4139
private void initializeLogger(LoggerType loggerType, AdminApiSettings settings)

0 commit comments

Comments
 (0)