$lang['tuto'] = "ਟਿ utorial ਟੋਰਿਅਲਸ"; ?> ਲੌਗਸ ਵਰਕਸਪੇਸ ਵਿੱਚ Azure

ਲੌਗਸ ਵਰਕਸਪੇਸ ਵਿੱਚ Azure ਫੰਕਸ਼ਨ ਜਾਣਕਾਰੀ ਲੌਗ ਕਿਉਂ ਗੁੰਮ ਹਨ?

Temp mail SuperHeros
ਲੌਗਸ ਵਰਕਸਪੇਸ ਵਿੱਚ Azure ਫੰਕਸ਼ਨ ਜਾਣਕਾਰੀ ਲੌਗ ਕਿਉਂ ਗੁੰਮ ਹਨ?
ਲੌਗਸ ਵਰਕਸਪੇਸ ਵਿੱਚ Azure ਫੰਕਸ਼ਨ ਜਾਣਕਾਰੀ ਲੌਗ ਕਿਉਂ ਗੁੰਮ ਹਨ?

ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ ਵਿੱਚ ਗੁੰਮ ਹੋਏ Azure ਫੰਕਸ਼ਨ ਲੌਗਸ ਦਾ ਨਿਪਟਾਰਾ ਕਰਨਾ

Azure ਫੰਕਸ਼ਨਾਂ ਨਾਲ ਕੰਮ ਕਰਨਾ ਅਕਸਰ ਇੱਕ ਚੰਗੀ ਤਰ੍ਹਾਂ ਤੇਲ ਵਾਲਾ ਆਟੋਮੇਸ਼ਨ ਇੰਜਣ ਬਣਾਉਣ ਵਰਗਾ ਮਹਿਸੂਸ ਹੁੰਦਾ ਹੈ। ਪਰ ਉਦੋਂ ਕੀ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਤੁਹਾਡੇ ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ ਵਰਕਸਪੇਸ ਤੋਂ ਕੁਝ ਮਹੱਤਵਪੂਰਨ ਲੌਗ ਗਾਇਬ ਹੋ ਜਾਂਦੇ ਹਨ? 🤔 ਇਹ ਇੱਕ ਚੁਣੌਤੀ ਹੈ ਜਿਸ ਦਾ ਮੈਂ ਹਾਲ ਹੀ ਵਿੱਚ ਇੱਕ ਟਾਈਮਰ ਟ੍ਰਿਗਰ ਅਜ਼ੁਰ ਫੰਕਸ਼ਨ ਨੂੰ ਵਿਕਸਤ ਕਰਨ ਦੌਰਾਨ ਸਾਹਮਣਾ ਕੀਤਾ ਹੈ। ਮੇਰੇ ਜਾਣਕਾਰੀ-ਪੱਧਰ ਦੇ ਲੌਗ, ਜੋ ਅਜ਼ੂਰ ਪੋਰਟਲ ਲੌਗ ਕੰਸੋਲ ਵਿੱਚ ਪੂਰੀ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਦੇ ਸਨ, ਲੌਗਸ ਵਰਕਸਪੇਸ ਵਿੱਚ ਰਹੱਸਮਈ ਢੰਗ ਨਾਲ ਗੈਰਹਾਜ਼ਰ ਸਨ।

ਪਹਿਲਾਂ, ਮੈਂ ਮੰਨਿਆ ਕਿ ਸਭ ਕੁਝ ਸਹੀ ਢੰਗ ਨਾਲ ਕੌਂਫਿਗਰ ਕੀਤਾ ਗਿਆ ਸੀ. ਆਖਰਕਾਰ, ਮੈਂ ਆਪਣੇ ਫੰਕਸ਼ਨ ਐਪ ਦੀ ਸਿਰਜਣਾ ਦੌਰਾਨ ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ ਸੈਟ ਅਪ ਕੀਤੀ ਸੀ, ਅਤੇ ਟੈਲੀਮੈਟਰੀ ਸੈਟਅਪ ਬਾਕਸ ਤੋਂ ਬਾਹਰ ਕੰਮ ਕਰਦਾ ਜਾਪਦਾ ਸੀ। ਇੱਕ ਡਿਵੈਲਪਰ ਦੇ ਤੌਰ 'ਤੇ, ਚੇਤਾਵਨੀ ਅਤੇ ਗਲਤੀ ਲੌਗਸ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਦਿਖਾਈ ਦੇਣ ਤੋਂ ਇਲਾਵਾ ਹੋਰ ਕੋਈ ਪਰੇਸ਼ਾਨੀ ਵਾਲੀ ਗੱਲ ਨਹੀਂ ਹੈ ਜਦੋਂ ਕਿ ਜਾਣਕਾਰੀ ਲੌਗ ਕਿਤੇ ਨਹੀਂ ਲੱਭੇ ਜਾ ਰਹੇ ਹਨ। ਉਹ ਕਿੱਥੇ ਲੁਕੇ ਹੋਏ ਸਨ?

ਇਸ ਮੁੱਦੇ ਨੇ ਮੈਨੂੰ ਇੱਕ ਵੈਬ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਡੀਬੱਗ ਕਰਨ ਵੇਲੇ ਇੱਕ ਸਮਾਨ ਪਲ ਦੀ ਯਾਦ ਦਿਵਾਈ। ਗਲਤੀ ਲੌਗ ਚੀਕਦੇ ਹਨ "ਮੈਨੂੰ ਠੀਕ ਕਰੋ!" ਜਦੋਂ ਕਿ ਸੂਖਮ ਜਾਣਕਾਰੀ-ਪੱਧਰ ਦੇ ਲੌਗ ਰਾਡਾਰ ਦੇ ਹੇਠਾਂ ਖਿਸਕ ਗਏ। ਇਹ ਇੱਕ ਗੁੰਮ ਹੋਏ ਬੁਝਾਰਤ ਦੇ ਟੁਕੜੇ ਦੀ ਖੋਜ ਕਰਨ ਵਰਗਾ ਹੈ — ਇਹ ਜਾਣਨਾ ਕਿ ਇਹ ਮੌਜੂਦ ਹੈ ਪਰ ਇਸ ਨੂੰ ਢੇਰ ਵਿੱਚ ਨਹੀਂ ਦੇਖ ਰਿਹਾ। 🧩 Azure ਦੀ host.json ਅਤੇ ਟੈਲੀਮੈਟਰੀ ਸੈਟਿੰਗਾਂ ਅਕਸਰ ਇੱਥੇ ਇੱਕ ਭੂਮਿਕਾ ਨਿਭਾਉਂਦੀਆਂ ਹਨ।

ਇਸ ਲੇਖ ਵਿੱਚ, ਮੈਂ ਇਸ ਮੁੱਦੇ ਦੇ ਮੂਲ ਕਾਰਨ ਨੂੰ ਤੋੜਾਂਗਾ ਅਤੇ ਇਸਨੂੰ ਕਦਮ-ਦਰ-ਕਦਮ ਕਿਵੇਂ ਹੱਲ ਕਰਨਾ ਹੈ। host.json ਸੰਰਚਨਾਵਾਂ ਤੋਂ ਲੌਗ ਲੈਵਲ ਥ੍ਰੈਸ਼ਹੋਲਡ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਤੱਕ, ਮੈਂ ਤੁਹਾਨੂੰ ਹੱਲ ਲਈ ਮਾਰਗਦਰਸ਼ਨ ਕਰਾਂਗਾ। ਚਲੋ ਇਹ ਯਕੀਨੀ ਬਣਾਈਏ ਕਿ ਜਿਹੜੇ ਜਾਣਕਾਰੀ ਲੌਗ ਗੁੰਮ ਹੋਏ ਹਨ ਉਹ ਤੁਹਾਡੇ ਲੌਗਸ ਵਰਕਸਪੇਸ ਵਿੱਚ ਆਪਣਾ ਰਸਤਾ ਲੱਭ ਲੈਂਦੇ ਹਨ।

ਹੁਕਮ ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ
ConfigureFunctionsWorkerDefaults() Azure ਫੰਕਸ਼ਨ ਵਰਕਰ ਪਾਈਪਲਾਈਨ ਨੂੰ ਸ਼ੁਰੂ ਅਤੇ ਸੰਰਚਿਤ ਕਰਦਾ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਮਿਡਲਵੇਅਰ ਅਤੇ ਸੇਵਾਵਾਂ Azure ਫੰਕਸ਼ਨ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਲਈ ਸਹੀ ਢੰਗ ਨਾਲ ਸਥਾਪਤ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ।
Configure<LoggerFilterOptions>() ਲੌਗਸ ਨੂੰ ਉਹਨਾਂ ਦੇ ਲੌਗ ਪੱਧਰ ਦੇ ਅਧਾਰ ਤੇ ਫਿਲਟਰ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਜਾਣਕਾਰੀ, ਚੇਤਾਵਨੀ, ਜਾਂ ਗਲਤੀ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਸਿਰਫ਼ ਲੋੜੀਂਦੇ ਲੌਗ ਪੱਧਰਾਂ 'ਤੇ ਕਾਰਵਾਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
services.AddApplicationInsightsTelemetryWorkerService() ਵਰਕਰ ਸੇਵਾਵਾਂ ਲਈ ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ ਨੂੰ ਰਜਿਸਟਰ ਕਰਦਾ ਹੈ। ਇਹ ਗੈਰ-HTTP-ਟਰਿੱਗਰਡ ਸੰਦਰਭਾਂ ਵਿੱਚ ਅਜ਼ੂਰ ਫੰਕਸ਼ਨਾਂ ਲਈ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਟੈਲੀਮੈਟਰੀ ਸੰਗ੍ਰਹਿ ਅਤੇ ਲੌਗਿੰਗ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ।
options.MinLevel = LogLevel.Information ਨਿਊਨਤਮ ਲੌਗ ਲੈਵਲ ਥ੍ਰੈਸ਼ਹੋਲਡ ਸੈੱਟ ਕਰਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, 'ਜਾਣਕਾਰੀ' ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਜਾਣਕਾਰੀ, ਚੇਤਾਵਨੀ, ਅਤੇ ਗਲਤੀ ਪੱਧਰਾਂ ਦੇ ਲੌਗਸ ਨੂੰ ਕੈਪਚਰ ਕੀਤਾ ਗਿਆ ਹੈ।
ConfigureServices() ਕਸਟਮ ਸੇਵਾਵਾਂ ਨੂੰ ਜੋੜਨ ਜਾਂ ਨਿਰਭਰਤਾਵਾਂ ਨੂੰ ਕੌਂਫਿਗਰ ਕਰਨ ਲਈ ਇੱਕ ਵਿਧੀ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਲੌਗਿੰਗ, ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ, ਜਾਂ ਕੋਈ ਵੀ DI ਕੰਟੇਨਰ-ਸਬੰਧਤ ਭਾਗ।
samplingSettings: { isEnabled: false } ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਟੈਲੀਮੈਟਰੀ ਸੈਂਪਲਿੰਗ ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਜਾਣਕਾਰੀ-ਪੱਧਰ ਦੇ ਲੌਗਸ ਸਮੇਤ, ਸਾਰੇ ਲੌਗ ਫਿਲਟਰ ਕੀਤੇ ਬਿਨਾਂ ਕੈਪਚਰ ਕੀਤੇ ਗਏ ਹਨ।
host.Run() Azure ਫੰਕਸ਼ਨ ਵਰਕਰ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਚਲਾਉਣ ਲਈ ਕੌਂਫਿਗਰ ਕੀਤੇ ਹੋਸਟ ਨੂੰ ਚਲਾਉਂਦਾ ਹੈ ਅਤੇ ਆਉਣ ਵਾਲੀਆਂ ਘਟਨਾਵਾਂ ਜਾਂ ਟਰਿਗਰਾਂ ਨੂੰ ਸੁਣਨਾ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ।
builder.SetMinimumLevel(LogLevel.Information) ਲੌਗਰ ਕੌਂਫਿਗਰੇਸ਼ਨ ਲਈ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਨਿਊਨਤਮ ਲੌਗ ਪੱਧਰ ਨੂੰ ਸੈਟ ਕਰਦਾ ਹੈ ਤਾਂ ਜੋ ਇਹ ਯਕੀਨੀ ਬਣਾਇਆ ਜਾ ਸਕੇ ਕਿ ਜਾਣਕਾਰੀ ਪੱਧਰ ਅਤੇ ਇਸ ਤੋਂ ਉੱਪਰ ਦੇ ਵਿਸਤ੍ਰਿਤ ਲੌਗਾਂ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕੀਤੀ ਗਈ ਹੈ।
Assert.True(condition, message) ਇਹ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਯੂਨਿਟ ਟੈਸਟਿੰਗ ਵਿੱਚ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਕਿ ਇੱਕ ਸ਼ਰਤ ਸਹੀ ਹੈ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਇਹ ਪ੍ਰਮਾਣਿਤ ਕਰਦਾ ਹੈ ਕਿ ਜਾਣਕਾਰੀ ਲੌਗ ਸਫਲਤਾਪੂਰਵਕ ਕੈਪਚਰ ਕੀਤੇ ਗਏ ਹਨ।
LogInformation("Message") ਇੱਕ ਜਾਣਕਾਰੀ ਸੰਦੇਸ਼ ਨੂੰ ਲੌਗ ਕਰਦਾ ਹੈ। ਇਹ Azure ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਗੈਰ-ਨਾਜ਼ੁਕ ਗਤੀਵਿਧੀਆਂ ਨੂੰ ਡੀਬੱਗ ਕਰਨ ਅਤੇ ਨਿਗਰਾਨੀ ਕਰਨ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ।

ਗੁੰਮ ਹੋਏ Azure ਫੰਕਸ਼ਨ ਲੌਗਸ ਨੂੰ ਸਮਝਣਾ ਅਤੇ ਇਸਨੂੰ ਕਿਵੇਂ ਹੱਲ ਕਰਨਾ ਹੈ

ਪਹਿਲਾਂ ਪ੍ਰਦਾਨ ਕੀਤੀਆਂ ਸਕ੍ਰਿਪਟਾਂ ਦਾ ਉਦੇਸ਼ ਇੱਕ ਆਮ ਮੁੱਦੇ ਨੂੰ ਹੱਲ ਕਰਨਾ ਹੈ ਜਿੱਥੇ ਜਾਣਕਾਰੀ-ਪੱਧਰ ਦੇ ਲੌਗ Azure ਫੰਕਸ਼ਨ ਦੁਆਰਾ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਲੌਗਸ ਵਰਕਸਪੇਸ ਵਿੱਚ ਦਿਖਾਈ ਨਹੀਂ ਦਿੰਦਾ, ਭਾਵੇਂ ਉਹ Azure ਪੋਰਟਲ ਲੌਗ ਕੰਸੋਲ ਵਿੱਚ ਦਿਖਾਈ ਦਿੰਦੇ ਹਨ। ਇਹ ਅੰਤਰ ਅਕਸਰ host.json ਫਾਈਲ ਵਿੱਚ ਗਲਤ ਸੰਰਚਨਾ, ਨਾਕਾਫ਼ੀ ਟੈਲੀਮੈਟਰੀ ਸੈਟਿੰਗਾਂ, ਜਾਂ ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ ਏਕੀਕਰਣ ਵਿੱਚ ਸਮੱਸਿਆਵਾਂ ਦੇ ਕਾਰਨ ਹੁੰਦਾ ਹੈ। ਵਰਗੇ ਕਮਾਂਡਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸੰਰਚਨਾ ਫੰਕਸ਼ਨ ਵਰਕਰ ਡਿਫੌਲਟ() ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ ਟੈਲੀਮੈਟਰੀ ਵਰਕਰ ਸਰਵਿਸ () ਸ਼ਾਮਲ ਕਰੋ, ਅਸੀਂ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹਾਂ ਕਿ ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ ਉਮੀਦ ਮੁਤਾਬਕ ਲੌਗਸ ਨੂੰ ਕੈਪਚਰ ਕਰਦੀ ਹੈ। ਇਹ ਸਕ੍ਰਿਪਟਾਂ ਟੈਲੀਮੈਟਰੀ ਡੇਟਾ ਨੂੰ ਇਕੱਤਰ ਕਰਨ ਅਤੇ ਪ੍ਰਬੰਧਨ ਲਈ ਇੱਕ ਮਜ਼ਬੂਤ ​​ਬੁਨਿਆਦ ਸਥਾਪਤ ਕਰਦੀਆਂ ਹਨ।

ਪਹਿਲਾਂ, Program.cs ਵਿੱਚ `HostBuilder` Azure ਫੰਕਸ਼ਨ ਵਰਕਰ ਵਾਤਾਵਰਣ ਨੂੰ ਸੈਟ ਅਪ ਕਰਦਾ ਹੈ। ਢੰਗ ਸੰਰਚਨਾ ਫੰਕਸ਼ਨ ਵਰਕਰ ਡਿਫੌਲਟ() ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ Azure ਫੰਕਸ਼ਨਾਂ ਲਈ ਸਾਰੇ ਲੋੜੀਂਦੇ ਮਿਡਲਵੇਅਰ ਸ਼ੁਰੂ ਕੀਤੇ ਗਏ ਹਨ। ਇਹ ਕਸਟਮ ਲੌਗਿੰਗ ਅਤੇ ਨਿਰਭਰਤਾ ਇੰਜੈਕਸ਼ਨ ਕੌਂਫਿਗਰੇਸ਼ਨ ਦੀ ਵੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਅੱਗੇ, ਅਸੀਂ AddApplicationInsightsTelemetryWorkerService() ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ ਨੂੰ ਰਜਿਸਟਰ ਕਰਦੇ ਹਾਂ। ਇਹ ਕਦਮ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਟੈਲੀਮੈਟਰੀ ਸੰਗ੍ਰਹਿ ਗੈਰ-HTTP-ਟਰਿੱਗਰਡ Azure ਫੰਕਸ਼ਨਾਂ ਲਈ ਸਹੀ ਢੰਗ ਨਾਲ ਕੌਂਫਿਗਰ ਕੀਤਾ ਗਿਆ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਇੱਕ ਟਾਈਮਰ ਟ੍ਰਿਗਰ ਫੰਕਸ਼ਨ ਨੂੰ ਡੀਬੱਗ ਕਰਨ ਦੀ ਕਲਪਨਾ ਕਰੋ: ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ ਦੇ ਬਿਨਾਂ, ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਟਰੈਕ ਕਰਨਾ ਅਤੇ ਮੁੱਦਿਆਂ ਦੀ ਪਛਾਣ ਕਰਨਾ ਇੱਕ ਮੈਨੂਅਲ ਅਤੇ ਸਮਾਂ ਬਰਬਾਦ ਕਰਨ ਵਾਲੀ ਪ੍ਰਕਿਰਿਆ ਬਣ ਜਾਂਦੀ ਹੈ। 🔧

host.json ਫ਼ਾਈਲ ਇਹ ਕੰਟਰੋਲ ਕਰਨ ਵਿੱਚ ਮੁੱਖ ਭੂਮਿਕਾ ਨਿਭਾਉਂਦੀ ਹੈ ਕਿ ਕਿਹੜੇ ਲੌਗ ਪੱਧਰਾਂ ਨੂੰ ਕੈਪਚਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਪੂਰਵ-ਨਿਰਧਾਰਤ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ ਸੈਕਸ਼ਨਾਂ ਵਿੱਚ `ਲੌਗਲੇਵਲ` ਨੂੰ ਜਾਣਕਾਰੀ ਵਿੱਚ ਸੈੱਟ ਕਰਕੇ, ਅਸੀਂ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੇ ਹਾਂ ਕਿ ਜਾਣਕਾਰੀ-ਪੱਧਰ ਦੇ ਲੌਗਸ 'ਤੇ ਕਾਰਵਾਈ ਕੀਤੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ। ਹਾਲਾਂਕਿ, samplingSettings ਪ੍ਰਾਪਰਟੀ ਕਈ ਵਾਰ ਲੌਗਸ ਨੂੰ ਫਿਲਟਰ ਕਰ ਸਕਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਲੌਗਸ ਵਰਕਸਪੇਸ ਵਿੱਚ ਐਂਟਰੀਆਂ ਗੁੰਮ ਹੋ ਜਾਂਦੀਆਂ ਹਨ। ਸੈਂਪਲਿੰਗ (`"isEnabled": false`) ਨੂੰ ਅਯੋਗ ਕਰਕੇ, ਅਸੀਂ ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਦੇ ਹਾਂ ਕਿ ਸਾਰਾ ਟੈਲੀਮੈਟਰੀ ਡੇਟਾ, ਜਾਣਕਾਰੀ ਲੌਗਸ ਸਮੇਤ, ਕੈਪਚਰ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਮਹੱਤਵਪੂਰਨ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਉਤਪਾਦਨ ਦੇ ਮੁੱਦਿਆਂ ਦਾ ਨਿਪਟਾਰਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਿੱਥੇ ਮਾਮੂਲੀ ਵੇਰਵੇ ਵੀ ਮੂਲ ਕਾਰਨ ਨੂੰ ਪ੍ਰਗਟ ਕਰ ਸਕਦੇ ਹਨ। ਮੈਨੂੰ ਇੱਕ ਵਾਰ ਅਜਿਹੀ ਸਥਿਤੀ ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਪਿਆ ਜਿੱਥੇ ਇੱਕ ਛੋਟੇ ਲੌਗਇਨਫਰਮੇਸ਼ਨ ਸੁਨੇਹੇ ਨੇ ਇੱਕ ਗਲਤ ਸੰਰਚਿਤ ਸ਼ਡਿਊਲਰ ਨੂੰ ਉਜਾਗਰ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕੀਤੀ। 🎯

ਅੰਤ ਵਿੱਚ, ਯੂਨਿਟ ਟੈਸਟ ਸਕ੍ਰਿਪਟ ਇਹ ਤਸਦੀਕ ਕਰਦੀ ਹੈ ਕਿ ਵੱਖ-ਵੱਖ ਪੱਧਰਾਂ 'ਤੇ ਲੌਗਸ-ਜਾਣਕਾਰੀ, ਚੇਤਾਵਨੀ, ਅਤੇ ਤਰੁੱਟੀ-ਸਹੀ ਢੰਗ ਨਾਲ ਨਿਕਲੇ ਅਤੇ ਕੈਪਚਰ ਕੀਤੇ ਗਏ ਹਨ। ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ Set Minimum Level(), ਅਸੀਂ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹਾਂ ਕਿ ਲੌਗਰ ਸਾਰੇ ਲੌਗਾਂ ਨੂੰ ਲੋੜੀਦੀ ਥ੍ਰੈਸ਼ਹੋਲਡ 'ਤੇ ਜਾਂ ਇਸ ਤੋਂ ਉੱਪਰ ਪ੍ਰਕਿਰਿਆ ਕਰਦਾ ਹੈ। ਸਾਡੀ ਉਦਾਹਰਨ ਵਿੱਚ, ਅਸੀਂ ਪ੍ਰਮਾਣਿਤ ਕੀਤਾ ਹੈ ਕਿ ਜਦੋਂ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਕੌਂਫਿਗਰ ਕੀਤੇ ਜਾਂਦੇ ਹਨ ਤਾਂ ਜਾਣਕਾਰੀ ਲੌਗ ਦਿਖਾਈ ਦਿੰਦੇ ਹਨ। ਇਸ ਤਰ੍ਹਾਂ ਦੇ ਯੂਨਿਟ ਟੈਸਟਾਂ ਨੂੰ ਲਿਖਣਾ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਲੌਗਿੰਗ ਵਿਵਹਾਰ ਸਾਰੇ ਵਾਤਾਵਰਣਾਂ ਵਿੱਚ ਇਕਸਾਰ ਹੈ, ਤੈਨਾਤੀ ਦੌਰਾਨ ਹੈਰਾਨੀ ਨੂੰ ਰੋਕਦਾ ਹੈ। ਇਕੱਠੇ ਮਿਲ ਕੇ, ਇਹ ਸਕ੍ਰਿਪਟਾਂ ਗੁੰਮ ਹੋਏ Azure ਫੰਕਸ਼ਨ ਲੌਗਸ ਨੂੰ ਹੱਲ ਕਰਨ ਅਤੇ ਤੁਹਾਡੀਆਂ ਕਲਾਉਡ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਟੈਲੀਮੈਟਰੀ ਸੰਗ੍ਰਹਿ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾਉਣ ਲਈ ਇੱਕ ਵਿਆਪਕ ਹੱਲ ਪ੍ਰਦਾਨ ਕਰਦੀਆਂ ਹਨ।

ਅਜ਼ੂਰ ਫੰਕਸ਼ਨ ਲੌਗਸ ਨੂੰ ਲੌਗ ਵਰਕਸਪੇਸ ਵਿੱਚ ਦਿਖਾਈ ਦੇਣਾ ਯਕੀਨੀ ਬਣਾਉਣਾ

ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ ਦੀ ਸਹੀ ਸੰਰਚਨਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ, ਗੁੰਮ ਜਾਣਕਾਰੀ ਲੌਗਸ ਮੁੱਦੇ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਇੱਥੇ ਇੱਕ C# ਬੈਕ-ਐਂਡ ਹੱਲ ਹੈ।

// Solution 1: Proper Host Configuration and Log Filtering
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
public class Program
{
    public static void Main(string[] args)
    {
        var host = new HostBuilder()
            .ConfigureFunctionsWorkerDefaults()
            .ConfigureServices(services =>
            {
                services.AddApplicationInsightsTelemetryWorkerService();
                services.Configure<LoggerFilterOptions>(options =>
                {
                    options.MinLevel = LogLevel.Information;
                });
            })
            .Build();
        host.Run();
    }
}

ਸਹੀ ਲਾਗ ਲੈਵਲ ਰਜਿਸਟ੍ਰੇਸ਼ਨ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਸੰਰਚਨਾ ਦੀ ਸਮੀਖਿਆ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ

host.json ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ ਲੌਗ ਪੱਧਰ ਇਕਸਾਰ ਹੋਣ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਸੰਰਚਨਾ ਫ਼ਾਈਲ ਸੈੱਟਅੱਪ।

// host.json Configuration
{
  "version": "2.0",
  "logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Function": "Information"
    },
    "applicationInsights": {
      "LogLevel": {
        "Default": "Information"
      },
      "samplingSettings": {
        "isEnabled": false
      }
    }
  }
}

ਵਿਕਲਪਕ: ਅਜ਼ੂਰ ਫੰਕਸ਼ਨ ਕੋਡ ਵਿੱਚ ਖਾਸ ਲੌਗ ਪੱਧਰਾਂ ਨੂੰ ਫਿਲਟਰ ਕਰਨਾ

ਵੱਖ-ਵੱਖ ਪੱਧਰਾਂ ਲਈ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਫਿਲਟਰ ਕਰਨ ਅਤੇ ਲੌਗਾਂ ਨੂੰ ਕੱਢਣ ਲਈ C# ਸਕ੍ਰਿਪਟ।

using Microsoft.Extensions.Logging;
public class MyFunction
{
    private readonly ILogger _logger;
    public MyFunction(ILoggerFactory loggerFactory)
    {
        _logger = loggerFactory.CreateLogger<MyFunction>();
    }
    public void Run()
    {
        _logger.LogInformation("Executing Information level log.");
        _logger.LogWarning("This is a Warning level log.");
        _logger.LogError("This is an Error level log.");
    }
}

ਲੌਗ ਲੈਵਲ ਕੌਂਫਿਗਰੇਸ਼ਨ ਲਈ ਯੂਨਿਟ ਟੈਸਟਿੰਗ

ਇਹ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ ਇੱਕ ਸਧਾਰਨ ਯੂਨਿਟ ਟੈਸਟ ਕਿ ਸੂਚਨਾ ਪੱਧਰ 'ਤੇ ਲੌਗਸ ਸਹੀ ਢੰਗ ਨਾਲ ਕੈਪਚਰ ਕੀਤੇ ਗਏ ਹਨ।

using Xunit;
using Microsoft.Extensions.Logging;
public class LogTests
{
    [Fact]
    public void VerifyInformationLogsAreCaptured()
    {
        var loggerFactory = LoggerFactory.Create(builder =>
        {
            builder.AddConsole();
            builder.SetMinimumLevel(LogLevel.Information);
        });
        var logger = loggerFactory.CreateLogger("TestLogger");
        logger.LogInformation("This is a test Information log.");
        Assert.True(true, "Information log captured successfully.");
    }
}

ਟੈਲੀਮੈਟਰੀ ਡੇਟਾ ਦੀ ਪੜਚੋਲ ਕਰਕੇ ਗੁੰਮ ਹੋਏ Azure ਫੰਕਸ਼ਨ ਲੌਗਸ ਨੂੰ ਹੱਲ ਕਰਨਾ

Azure ਫੰਕਸ਼ਨ ਲੌਗਸ ਦਾ ਇੱਕ ਹੋਰ ਨਾਜ਼ੁਕ ਪਹਿਲੂ ਲੌਗਸ ਵਰਕਸਪੇਸ ਵਿੱਚ ਦਿਖਾਈ ਨਹੀਂ ਦਿੰਦਾ ਹੈ ਜਿਸ ਵਿੱਚ ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ ਦੁਆਰਾ ਵਰਤੀ ਗਈ ਟੈਲੀਮੈਟਰੀ ਚੈਨਲ ਕੌਂਫਿਗਰੇਸ਼ਨ ਸ਼ਾਮਲ ਹੈ। ਮੂਲ ਰੂਪ ਵਿੱਚ, Azure ਫੰਕਸ਼ਨ ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ SDK ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ, ਜੋ ਉਹਨਾਂ ਨੂੰ ਟੈਲੀਮੈਟਰੀ ਐਂਡਪੁਆਇੰਟ 'ਤੇ ਭੇਜਣ ਤੋਂ ਪਹਿਲਾਂ ਲੌਗਸ ਨੂੰ ਬਫਰ ਕਰਦਾ ਹੈ। ਹਾਲਾਂਕਿ, ਇਹ ਬਫਰਿੰਗ ਕੁਝ ਲੌਗ ਐਂਟਰੀਆਂ ਜਿਵੇਂ ਕਿ ਜਾਣਕਾਰੀ-ਪੱਧਰ ਦੇ ਲੌਗ ਨੂੰ ਨਮੂਨਾ ਲੈਣ ਜਾਂ ਟੈਲੀਮੈਟਰੀ ਡੇਟਾ ਦੀ ਗਲਤ ਫਲੱਸ਼ਿੰਗ ਕਾਰਨ ਦੇਰੀ ਜਾਂ ਛੱਡ ਸਕਦੀ ਹੈ। ਇਕਸਾਰ ਲੌਗਸ ਨੂੰ ਕਾਇਮ ਰੱਖਣ ਲਈ ਸਹੀ ਟੈਲੀਮੈਟਰੀ ਚੈਨਲ ਵਿਵਹਾਰ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣਾ ਮਹੱਤਵਪੂਰਨ ਹੈ।

ਇੱਕ ਅਕਸਰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕੀਤਾ ਕਾਰਕ ਹੈ ਸੈਂਪਲਿੰਗ ਸੈਟਿੰਗਾਂ host.json ਵਿੱਚ ਸੰਰਚਨਾ। ਜਦੋਂ ਨਮੂਨਾ ਯੋਗ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਡੇਟਾ ਵਾਲੀਅਮ ਅਤੇ ਲਾਗਤਾਂ ਨੂੰ ਘਟਾਉਣ ਲਈ ਲੌਗਸ ਦਾ ਸਿਰਫ ਇੱਕ ਹਿੱਸਾ ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ ਨੂੰ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ। ਹਾਲਾਂਕਿ, ਜੇਕਰ ਜਾਣਕਾਰੀ ਲੌਗ ਡੀਬੱਗਿੰਗ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹਨ, ਤਾਂ ਤੁਹਾਨੂੰ ਜਾਂ ਤਾਂ ਨਮੂਨਾ ਲੈਣ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਅਯੋਗ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ (`"isEnabled": false`) ਜਾਂ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਸਾਰੇ ਲੋੜੀਂਦੇ ਲੌਗ ਕੈਪਚਰ ਕੀਤੇ ਗਏ ਹਨ, ਸੈਂਪਲਿੰਗ ਤਰਕ ਨੂੰ ਵਿਵਸਥਿਤ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਮੈਨੂੰ ਇੱਕ ਸਮੱਸਿਆ ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਪਿਆ ਜਿੱਥੇ ਨਮੂਨੇ ਨੂੰ ਸਮਰੱਥ ਕਰਨ ਨਾਲ ਗੈਰ-ਨਾਜ਼ੁਕ ਜਾਣਕਾਰੀ ਲੌਗਸ ਵਿੱਚ ਬੇਤਰਤੀਬ ਕਮੀ ਆਈ, ਜਿਸ ਨਾਲ ਉਤਪਾਦਨ ਡੀਬੱਗਿੰਗ ਦੌਰਾਨ ਨਿਰਾਸ਼ਾ ਪੈਦਾ ਹੋਈ। 💻

ਇਸ ਤੋਂ ਇਲਾਵਾ, ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਫਲੱਸ਼ ਕਮਾਂਡਾਂ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀਆਂ ਹਨ ਕਿ ਸਾਰੀ ਬਫਰਡ ਟੈਲੀਮੈਟਰੀ ਤੁਰੰਤ ਭੇਜੀ ਜਾਂਦੀ ਹੈ, ਡਾਟਾ ਦੇ ਨੁਕਸਾਨ ਤੋਂ ਬਚਿਆ ਜਾਂਦਾ ਹੈ। ਅਜਿਹੇ ਹਾਲਾਤਾਂ ਵਿੱਚ ਜਿੱਥੇ ਅਜ਼ੂਰ ਫੰਕਸ਼ਨ ਹਾਈ-ਲੋਡ ਟਰਿਗਰਸ ਜਿਵੇਂ ਕਿ HTTP ਬੇਨਤੀਆਂ ਜਾਂ ਟਾਈਮਰ ਟਰਿਗਰਸ ਦੇ ਅਧੀਨ ਚੱਲਦੇ ਹਨ, ਟੈਲੀਮੈਟਰੀ ਬਫਰਿੰਗ ਤੇਜ਼ੀ ਨਾਲ ਇਕੱਠੀ ਹੋ ਸਕਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਦੇਰੀ ਹੁੰਦੀ ਹੈ। ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ TelemetryClient.Flush() ਨੂੰ ਕਾਲ ਕਰਕੇ ਜਾਂ ਟੈਲੀਮੈਟਰੀ ਐਂਡਪੁਆਇੰਟ ਕਨੈਕਟੀਵਿਟੀ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਦੁਆਰਾ, ਡਿਵੈਲਪਰ ਲੌਗ ਅਸੰਗਤੀਆਂ ਨੂੰ ਘਟਾ ਸਕਦੇ ਹਨ ਅਤੇ ਇੱਕ ਸਹੀ ਨਿਗਰਾਨੀ ਵਾਤਾਵਰਣ ਨੂੰ ਕਾਇਮ ਰੱਖ ਸਕਦੇ ਹਨ। ਅੰਤ ਵਿੱਚ, ਸੈਂਪਲਿੰਗ, ਬਫਰਿੰਗ, ਅਤੇ ਫਲੱਸ਼ਿੰਗ ਨੂੰ ਸੰਤੁਲਿਤ ਕਰਨਾ ਲਾਗਤਾਂ ਨੂੰ ਘੱਟ ਕਰਦੇ ਹੋਏ ਅਨੁਕੂਲ ਲੌਗ ਦਿੱਖ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।

Azure Function Logs ਬਾਰੇ ਅਕਸਰ ਪੁੱਛੇ ਜਾਂਦੇ ਸਵਾਲ - Frequently asked Questions about Azure Function Logs

  1. ਲੌਗਸ ਵਰਕਸਪੇਸ ਤੋਂ ਮੇਰੇ ਜਾਣਕਾਰੀ ਲੌਗ ਗਾਇਬ ਕਿਉਂ ਹਨ?
  2. ਦੇ ਕਾਰਨ ਜਾਣਕਾਰੀ ਲੌਗ ਦਿਖਾਈ ਨਹੀਂ ਦੇ ਸਕਦੇ ਹਨ samplingSettings ਵਿੱਚ host.json. ਨਾਲ ਨਮੂਨਾ ਲੈਣ ਨੂੰ ਅਯੋਗ ਕਰੋ "isEnabled": false ਸਾਰੇ ਲੌਗ ਕੈਪਚਰ ਕਰਨ ਲਈ।
  3. host.json ਵਿੱਚ LogLevel ਸੰਰਚਨਾ ਕੀ ਕਰਦੀ ਹੈ?
  4. LogLevel ਕੈਪਚਰ ਕੀਤੀ ਨਿਊਨਤਮ ਲਾਗ ਗੰਭੀਰਤਾ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ "Default": "Information", ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਕਿ ਉਸ ਪੱਧਰ 'ਤੇ ਜਾਂ ਇਸ ਤੋਂ ਉੱਪਰ ਦੇ ਲੌਗਾਂ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕੀਤੀ ਗਈ ਹੈ।
  5. ਮੈਂ ਇਹ ਕਿਵੇਂ ਯਕੀਨੀ ਬਣਾ ਸਕਦਾ ਹਾਂ ਕਿ ਟੈਲੀਮੈਟਰੀ ਡੇਟਾ ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ ਵਿੱਚ ਫਲੱਸ਼ ਕੀਤਾ ਗਿਆ ਹੈ?
  6. ਦੀ ਵਰਤੋਂ ਕਰੋ TelemetryClient.Flush() ਤੁਹਾਡੇ ਫੰਕਸ਼ਨ ਕੋਡ ਵਿੱਚ ਵਿਧੀ ਸਾਰੇ ਬਫਰਡ ਟੈਲੀਮੈਟਰੀ ਨੂੰ ਤੁਰੰਤ ਭੇਜਣ ਲਈ ਮਜਬੂਰ ਕਰਨ ਲਈ।
  7. ਚੇਤਾਵਨੀ ਅਤੇ ਗਲਤੀ ਲੌਗ ਕਿਉਂ ਦਿਸਦੇ ਹਨ ਪਰ ਸੂਚਨਾ ਲੌਗ ਕਿਉਂ ਨਹੀਂ ਹਨ?
  8. ਇਹ ਮੁੱਦਾ ਉਦੋਂ ਹੁੰਦਾ ਹੈ ਜਦੋਂ LogLevel ਗਲਤ ਸੰਰਚਨਾ ਕੀਤੀ ਗਈ ਹੈ ਜਾਂ samplingSettings ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਦੇ ਕਾਰਨ ਜਾਣਕਾਰੀ ਲੌਗਸ ਨੂੰ ਛੱਡੋ।
  9. ਕੀ ਮੈਂ ਖਾਸ ਲੌਗਸ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਨਮੂਨਾ ਤਰਕ ਨੂੰ ਵਿਵਸਥਿਤ ਕਰ ਸਕਦਾ ਹਾਂ?
  10. ਹਾਂ, ਤੁਸੀਂ ਕਸਟਮਾਈਜ਼ ਕਰ ਸਕਦੇ ਹੋ excludedTypes ਦੇ ਅਧੀਨ ਜਾਇਦਾਦ samplingSettings ਖਾਸ ਟੈਲੀਮੈਟਰੀ ਕਿਸਮਾਂ ਨੂੰ ਬਾਹਰ ਕੱਢਣ ਲਈ ਜਿਵੇਂ ਕਿ Request ਜਾਂ Exception.
  11. AddApplicationInsightsTelemetryWorkerService() ਦੀ ਕੀ ਭੂਮਿਕਾ ਹੈ?
  12. AddApplicationInsightsTelemetryWorkerService() ਢੰਗ ਅਜ਼ੂਰ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਟੈਲੀਮੈਟਰੀ ਲਈ ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ ਨੂੰ ਰਜਿਸਟਰ ਕਰਦਾ ਹੈ।
  13. ਮੈਂ ਇਹ ਕਿਵੇਂ ਤਸਦੀਕ ਕਰਾਂ ਕਿ ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ ਸਹੀ ਢੰਗ ਨਾਲ ਲਿੰਕ ਹਨ?
  14. ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ ਸੈਟਿੰਗਾਂ ਦੇ ਅਧੀਨ ਆਪਣੀ ਫੰਕਸ਼ਨ ਐਪ ਦੀ ਸੰਰਚਨਾ ਵਿੱਚ ਇੰਸਟਰੂਮੈਂਟੇਸ਼ਨ ਕੁੰਜੀ ਜਾਂ ਕਨੈਕਸ਼ਨ ਸਤਰ ਦੀ ਜਾਂਚ ਕਰੋ।
  15. ਕੀ ਮੈਂ ਜਾਣਕਾਰੀ-ਪੱਧਰ ਦੇ ਸੁਨੇਹਿਆਂ ਨੂੰ ਪ੍ਰੋਗਰਾਮੇਟਿਕ ਤੌਰ 'ਤੇ ਲੌਗ ਕਰ ਸਕਦਾ ਹਾਂ?
  16. ਹਾਂ, ਤੁਸੀਂ ਵਰਤ ਸਕਦੇ ਹੋ _logger.LogInformation("Your message") ਤੁਹਾਡੇ ਫੰਕਸ਼ਨ ਕੋਡ ਵਿੱਚ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਜਾਣਕਾਰੀ ਸੁਨੇਹਿਆਂ ਨੂੰ ਲੌਗ ਕਰਨ ਦਾ ਤਰੀਕਾ।
  17. ਮੈਂ ਟਾਈਮਰ ਟ੍ਰਿਗਰ ਫੰਕਸ਼ਨ ਵਿੱਚ ਗੁੰਮ ਹੋਏ ਲੌਗਾਂ ਦਾ ਨਿਪਟਾਰਾ ਕਿਵੇਂ ਕਰ ਸਕਦਾ ਹਾਂ?
  18. ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ host.json ਕੌਂਫਿਗਰੇਸ਼ਨ, ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਟੈਲੀਮੈਟਰੀ ਜੁੜੀ ਹੋਈ ਹੈ, ਅਤੇ ਕਾਲ ਕਰੋ Flush() ਫੰਕਸ਼ਨ ਦੇ ਅੰਤ ਵਿੱਚ.
  19. ConfigureFunctionsWorkerDefaults() ਕੀ ਕਰਦਾ ਹੈ?
  20. ConfigureFunctionsWorkerDefaults() ਵਿਧੀ Azure ਫੰਕਸ਼ਨ ਮਿਡਲਵੇਅਰ ਨੂੰ ਸ਼ੁਰੂ ਕਰਦੀ ਹੈ ਅਤੇ ਲੌਗਿੰਗ ਸੈਟ ਅਪ ਕਰਦੀ ਹੈ।

Azure ਫੰਕਸ਼ਨ ਲੌਗਸ ਵਿੱਚ ਲੌਗ ਵਿਜ਼ੀਬਿਲਟੀ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣਾ

ਮੁੱਖ ਸੂਝ ਅਤੇ ਅਗਲੇ ਕਦਮ

Azure ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਸਹੀ ਲੌਗ ਦਿੱਖ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ host.json ਦੀ ਧਿਆਨ ਨਾਲ ਸੰਰਚਨਾ ਅਤੇ ਸਹੀ ਟੈਲੀਮੈਟਰੀ ਸੈਟਿੰਗਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਵਰਗੇ ਮੁੱਦੇ ਨਮੂਨਾ ਅਤੇ ਡਿਫਾਲਟ ਲੌਗ ਲੈਵਲ ਥ੍ਰੈਸ਼ਹੋਲਡ ਲਾਪਤਾ ਲੌਗਸ ਵੱਲ ਲੈ ਜਾ ਸਕਦੇ ਹਨ, ਭਾਵੇਂ ਡੇਟਾ ਪੋਰਟਲ ਕੰਸੋਲ ਵਿੱਚ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ। ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਸੈਂਪਲਿੰਗ ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਉਣਾ ਅਤੇ ਟੈਲੀਮੈਟਰੀ ਫਲੱਸ਼ ਵਿਧੀਆਂ ਨੂੰ ਕਾਲ ਕਰਨਾ ਅਕਸਰ ਇਸ ਸਮੱਸਿਆ ਦਾ ਹੱਲ ਕਰਦਾ ਹੈ।

ਇਸ ਤੋਂ ਇਲਾਵਾ, ਇਹ ਪ੍ਰਮਾਣਿਤ ਕਰਨਾ ਕਿ ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ ਸਹੀ ਢੰਗ ਨਾਲ ਜੁੜੀਆਂ ਹੋਈਆਂ ਹਨ ਅਤੇ ਦੋਵਾਂ ਵਿੱਚ ਉਚਿਤ ਲਾਗ ਪੱਧਰਾਂ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣਾ ਪ੍ਰੋਗਰਾਮ.ਸੀ.ਐਸ ਅਤੇ ਸੰਰਚਨਾ ਫਾਇਲਾਂ ਮਹੱਤਵਪੂਰਨ ਹਨ। ਇਹਨਾਂ ਅਡਜਸਟਮੈਂਟਾਂ ਦੇ ਨਾਲ, ਜਾਣਕਾਰੀ ਲੌਗਸ ਲੌਗਸ ਵਰਕਸਪੇਸ ਵਿੱਚ ਭਰੋਸੇਯੋਗ ਤੌਰ 'ਤੇ ਦਿਖਾਈ ਦੇਣਗੇ, Azure ਫੰਕਸ਼ਨ ਵਿਵਹਾਰ ਵਿੱਚ ਸਪਸ਼ਟ ਸਮਝ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹੋਏ। 🛠️

ਲਾਗ
  1. ਐਪਲੀਕੇਸ਼ਨ ਇਨਸਾਈਟਸ ਕੌਂਫਿਗਰੇਸ਼ਨ 'ਤੇ ਅਧਿਕਾਰਤ ਮਾਈਕ੍ਰੋਸਾਫਟ ਦਸਤਾਵੇਜ਼ - ਮਾਈਕ੍ਰੋਸਾਫਟ ਸਿੱਖੋ
  2. ਅਜ਼ੂਰ ਫੰਕਸ਼ਨ ਲੌਗਿੰਗ ਲਈ ਵਧੀਆ ਅਭਿਆਸ - Azure ਫੰਕਸ਼ਨ ਨਿਗਰਾਨੀ