Can I automatically print to a logfile all the localparams specified in a package? (these happen to be overridable by a define)

I have a package that contains a bunch of localparams. Instead of defining them like this:
localparam FIFO_DEPTH = 8;
I wanted to make the localparams all overwritable by setting defines in the command-line. So instead inside the package I define them like this:

package mypkg;
`my_localparm ( FIFO_DEPTH, DEFINED_FIFO_DEPTH, 8);

endpackage;

And my_localparm is: define my_localparam(param_name, defined_value, default_value)
ifdef defined_value \ localparam param_name = defined_value
else \ localparam param_name = default_value \ endif

Everything in the above code is synthesizable. This way, on the simulation command-line, I can specify -d DEFINED_FIFO_DEPTH=16, and it runs a simulation with the localparam being overridden with 16. All of this is fine.

But is there a way to automatically print out in my simulation logfile all of these parameters, so I can confirm which ones were in fact overridden?
Since SV packages do not actually contain variables and cannot contain procedural code such as initial statements, I’m not sure how to automatically print them out. In my regular RTL I can add an initial statement and just manually print out each of the localparams that I’ve defined in the package, but if I have ~100 localparams, I prefer to have a way to automatically print them out without manually specifying each one again.

In reply to eliot.f:

You are asking for introspection. The only ways to get this is by writing VPI routines to do this, or using tool specific commands that can traverse the design database.

I have a DVCon paper that shows you how to use the VPI to do this.

To use a tool based solution, you’ll have to look at your tool documentation or contact your tool vendor directly as this forum is not for discussing tool specific issues

In reply to dave_59:

Thanks. That answers my question that there is no native way to do it. I looked at your VPI paper. For my application, at this point I’m just going to hand code a bunch of print statements. If this ever gets too cumbersome, I’ll consider the fancier solution.
Eliot