Hi,

I've been looking at the internals of log4plsql to determine whether I can 
use some of the functionality in my own logging framework. In particular 
I've been looking at the context mechanism. First off I should explain that 
I'm actually a Java developer, so my question could well be the result of my 
crude understanding of plsql, but here goes anyway!

Basically, each procedure maintains it's context information across many 
procedure calls. For example:

create or replace package body test_logging IS

  pCTX PLOG.LOG_CTX := PLOG.init ('initApplication');

PROCEDURE test_1 IS

  BEGIN

    plog.setBeginSection(pCTX, 'test_1_section');
    dbms_output.put_line('1 ' || pCTX.LSECTION); --output 1

    test_2;

    dbms_output.put_line('2 ' || pCTX.LSECTION); --output 2
    plog.setEndSection(pCTX, 'test_1_section');

  END;

  PROCEDURE test_2 IS

  BEGIN

    plog.setBeginSection(pCTX, 'test_2_section');

        --do some logging

    plog.setEndSection(pCTX, 'test_2_section');

  END;
END;

>From this example both output 1 and output 2 are 
initApplication.test_1_section, which is what I would expect. My query is 
about how this is achieved.

Looking at the mechanism, it seems that this is achieved with the use of 
pass by value semantics. But, looking at the context configuration methods, 
such as setBeginSection and setEndSection, these methods specify the NOCOPY 
parameter mode hint on the context parameter in an attempt to enforce pass 
by reference semantics on the context. This confused me. The behaviour I was 
seeing seemed to be the result of passing the context by value. Then I read 
that under certain circumstances the compiler may decide to silently ignore 
the NOCOPY hint, one of these being when the actual and formal parameters 
are record structures, which the config is.

So, my questions are these, is the context mechanism meant to work through 
the use of pass by value semantics?
If so, why does the context param defined with the NOCOPY parameter mode 
hint?
And if not, how does the context mechanism work???

Cheers,

Tony

_________________________________________________________________
The next generation of Hotmail is here!  http://www.newhotmail.co.uk


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Log4plsql-all-info mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/log4plsql-all-info
log4plsq : http://log4plsql.sourceforge.net

Reply via email to