Richard J. Barbalace wrote the following in the "best practises" thread:

-----------------------------------
[...] Do NOT log valuable information.

By valuable, I mean information that has value to the organization or the users,
as opposed to the developers.  For instance, in medical applications, you should
not log personal health information (PHI).  This is hopefully obvious, but I
would never want to see this in a log:
2004-09-28/18:37:35.138/PDT - Submitted POSITIVE result for HERPES test for
patient SMITH.

That could violate the HIPAA law, create a severe privacy breach if someone
unauthorized reviewed your log, and might include information that the developer
is not even legally permitted to see.

As another example, in a banking system, you should not log personal account
details, social security numbers, etc. to a file whose only purpose is for
debugging.  Thankfully, in most cases, the exact personal details are not
necessary for debugging an application.
-----------------------------------

Logs are not for debugging.  That's the least important side of
logging.  (Unfortunately in the java world, debugging is where most of
the logs are focused!)  I think of logs as an intense write-always,
read-rarely database.  So I log 5TB of data over a year because my
client might need to look at 1KB when something serious happens.

As for what to log, look at the real life situation:

- The doctor can see the patient's chart (same for doctor's staff).
- The lab technician can see the lab's correspondence with the doctor
(same for lab's staff).
- Additional people probably have access to the information through
the lab's software systems, and the doctor's software systems.


I don't see why the log shouldn't be able to store similar
information.  Of course access to the log should be controlled.  When
I worked at a credit union, the production logs were tightly
controlled.  Only a few select people had access to specific logs, and
developers, almost always, never had access.

Probably logs should have the same security, privacy, and access
controls around them that one would apply to the database (and its
hard-drive).  In the end it's just information on a hard-drive.  If we
go down the path you're suggesting, one should also not store this
information in a database!

On the other hand, I strongly believe in not logging valuable
information when there is no need to log it.  Logging a customer's
bank balance is never useful.  But logging the fact they made a bill
payment for $5,000 can be useful if they call up later after something
goes wrong.  In other words, log important state changes, but don't
log the state.  If a patient's state changed from "healthy" to
"herpes," I would log that.  (What if the computer made a mistake?
The log will help!)

You also can't log information if you promise your customers you will
never retain it (or even see it), like a password.


Logs are not for developers.  Like the rest of the application, they
are written by developers, and used by everyone else.  In the case of
logs the users are usually:  sysadmins, customer support, security
auditors, lawyers, and occasionally the police!


-- 
yours,

Julius Davies
250-592-2284 (Home)
250-893-4579 (Mobile)
http://juliusdavies.ca/

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to