|
Quote: backend apps
If you ask me that`s not a proper use of the word 'app'. App is something user oriented, backend software is something developer oriented (the exception)
|
|
|
|
|
App is shorthand for “software application”. It refers to any executable, regardless of where it runs. The word was in use before mobile devices and the web existed.
Azure has function apps - no UI.
Windows has service apps - no UI.
Unix and Linux have daemons - no UI.
All are apps.
|
|
|
|
|
Aside from the logging for troubleshooting consider the log to be of some use to the customer/user:
Log users' decisions by username and time for later witch hunt investigation.
Create clear, user actionable error messages so the customer can fix their own problems without having to get you out of bed call you.
|
|
|
|
|
As far as design or process, this is my general pattern for logging. Of course, I also consider if any one or more of the steps is needed or not, or whether there is value in logging in any particular code block.
1 - On methods, use try-catch, and optionally, finally. Part of it is to ensure I log exceptions, and part of it is to destroy objects I create, given the GC may be slow to actually destroy the instance. The GC thing is a preference I have and a whole other discusssion.
2 - My logger gets the module and method names, as well as the line number so I can isolate where the problem occurred. It also captures the machine and usernames.
3 - My logger checks for inner exception instances to be sure to get all the exception messages.
4 - My log, when in a file, is tab delimited so it can be opened in Excel (or some other reader that handles columns). That aids in isolating specific repeating problems and doing analysis. The log to a SQL database table is easily queried from the same columns.
5 - My logging uses a bitset (flagged Enum) to categorize the log type. A bit comparison is used before logging so that if a particular log type is not "turned on", the call to the log is not made and that function overhead is not incurred. That also allows me to define what types to log in a config file, which can be changed at runtime to increase or decrease logging.
6 - My logger uses a queue approach, so that log entries are made to the queue (very fast, non-blocking, works great in multithreaded environments where there could be thousands of log entries from multiple parallel tasks). A separate task unwinds the FIFO queue to the written log or database (whichever is chosen). On shutdown, the queue is emptied before the logger shuts down.
7 - The logger creates a set of initial entries that capture system state, such as RAM, ethernet ports, disk space, OS and .NET info, etc. That has proven to be useful in figuring out problems related to the environment.
8 - I can include performance measurement for each method, and the code for it does not execute unless the performance bit is turned on in the log type bitset. Same for auditing flow in the log.
9 - I can optionally have a log entry send an email.
10 - If there is a practical need, I can add user-defined columns to my log (file or DB).
11 - I use the Exception.Data collection to store name-value pairs of runtime values that are useful in understanding the state at the time of the exception, and then logged. More than once, I have seen a value captured that immediately told me what the problem was (usually some missing validation on the front end).
Every developer is different in how they do things, and why. My approach has been refined over the decades to minimize the time spent during QA and during the post-production support part of the SDLC. If a given approach works for you, then it is the right approach.
|
|
|
|
|
Wasteful flip - or twist portcullis? (10)
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Profligate ?
Edit
Anagram of flip or and gate (portcullis)
Life should not be a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside in a cloud of smoke, thoroughly used up, totally worn out, and loudly proclaiming “Wow! What a Ride!" - Hunter S Thompson - RIP
modified 4-Jul-22 4:34am.
|
|
|
|
|
I liked that one - you are up tomorrow!
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Yes nice clue
Life should not be a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside in a cloud of smoke, thoroughly used up, totally worn out, and loudly proclaiming “Wow! What a Ride!" - Hunter S Thompson - RIP
|
|
|
|
|
Morning Paul - will there be one today ?
Life should not be a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside in a cloud of smoke, thoroughly used up, totally worn out, and loudly proclaiming “Wow! What a Ride!" - Hunter S Thompson - RIP
|
|
|
|
|
I was planning on doing one, yes.
Just not quite yet ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Wordle 380 4/6
⬜⬜⬜🟩⬜
🟩⬜⬜🟩🟩
🟩⬜🟨🟩⬜
🟩🟩🟩🟩🟩
Slightly delayed because I am travelling. There is intermittent net coverage.
|
|
|
|
|
Close one!
Wordle 380 5/6
⬜⬜⬜🟩⬜
🟨⬜⬜🟩🟨
🟩⬜⬜🟩🟩
🟩🟩⬜🟩🟩
🟩🟩🟩🟩🟩
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Wordle 380 6/6
⬜⬜🟨⬜⬜
⬜🟨⬜⬜🟨
⬜⬜⬜⬜⬜
⬜🟨🟨🟨⬜
🟩⬜🟨🟩⬜
🟩🟩🟩🟩🟩
Just snuck in...
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
|
|
|
|
|
Wordle 380 3/6
⬜⬜⬜🟩⬜
🟨🟩⬜🟩⬜
🟩🟩🟩🟩🟩
Life should not be a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside in a cloud of smoke, thoroughly used up, totally worn out, and loudly proclaiming “Wow! What a Ride!" - Hunter S Thompson - RIP
|
|
|
|
|
Wordle 380 3/6*
⬜⬜⬜⬜⬜
🟩⬜⬜⬜⬜
🟩🟩🟩🟩🟩
|
|
|
|
|
Wordle 380 4/6*
⬜⬜🟨🟨⬜
🟩🟩⬜🟨⬜
🟩🟩⬜⬜🟩
🟩🟩🟩🟩🟩
Happiness will never come to those who fail to appreciate what they already have. -Anon
|
|
|
|
|
Wordle 380 5/6
🟨⬛🟨⬛⬛
⬛⬛⬛⬛⬛
⬛⬛⬛⬛🟨
⬛🟩🟩🟩🟩
🟩🟩🟩🟩🟩
GCS/GE d--(d) s-/+ a C+++ U+++ P-- L+@ E-- W+++ N+ o+ K- w+++ O? M-- V? PS+ PE Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|
|
Wordle 380 4/6
🟨⬜⬜⬜🟨
⬜⬜⬜🟨🟨
🟨🟩🟨🟨🟨
🟩🟩🟩🟩🟩
|
|
|
|
|
Wordle 380 3/6*
🟩⬜🟨⬜⬜
🟩⬜⬜⬜🟨
🟩🟩🟩🟩🟩
|
|
|
|
|
Wordle 380 3/6
🟩⬛⬛🟨🟨
🟩⬛🟨🟩🟩
🟩🟩🟩🟩🟩
|
|
|
|
|
Wordle 380 4/6
⬛⬛⬛🟨🟨
🟨🟩⬛⬛⬛
🟩🟩⬛🟩🟩
🟩🟩🟩🟩🟩
Get me coffee and no one gets hurt!
|
|
|
|
|
380 5/6
can't paste results.
Wordle only shares results via clipboard. What's up with that
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
When your result comes up, click on 'SHARE' button which only copies the result to clipboard.
After that you can paste it in a CP Message.
|
|
|
|
|
Can't paste into CP message. Tried several formats. png and jpg
Use firefox as the browser.
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
also the clipboard image is weird green and with white background when I paste into irfview
i'll keep playing around with it.
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|