DBA Data[Home] [Help]

PACKAGE BODY: APPS.INL_LOGGING_PVT

Source


1 PACKAGE BODY INL_LOGGING_PVT AS
2 /* $Header: INLVLOGB.pls 120.4.12010000.3 2010/02/26 14:01:40 aicosta ship $ */
3 
4 -- Utility name   : Log_Concurrent
5 -- Type       : Private
6 -- Function   :  Private procedure to write the same content that goes to FND
7 --               LOG into the Concurrent Log when executing LCM concurrent programs.
8 --
9 -- Pre-reqs   : None
10 -- Parameters :
11 -- IN         : p_module_name    IN VARCHAR2
12 --              p_procedure_name IN VARCHAR2
13 --              p_debug_info     IN VARCHAR2
14 --              p_call_api_name  IN VARCHAR2
15 --              p_var_name       IN VARCHAR2
16 --              p_var_value      IN VARCHAR2
17 --              p_debug_type     IN NUMBER [1 - Log_BeginProc,
18 --                                              Log_Statement,
19 --                                              Log_Event,
20 --                                              Log_Exception,
21 --                                              Log_ExpecError,
22 --                                              Log_UnexpecError,
23 --                                              Log_EndProc.
24 --                                          2 - Log_Variable
25 --                                          3 - Log_APICallIn
26 --                                          4 - Log_APICallOut]
27 --
28 -- Version    : Current version 1.0
29 --
30 -- Notes      :
31 PROCEDURE Log_Concurrent(p_module_name IN VARCHAR2,
32                          p_procedure_name IN VARCHAR2,
33                          p_debug_info IN VARCHAR2,
34                          p_call_api_name IN VARCHAR2,
35                          p_var_name IN VARCHAR2,
36                          p_var_value IN VARCHAR2,
37                          p_debug_type IN NUMBER)
38 
39 IS
40     l_cp_flag number := 0;
41     l_timestamp varchar2(256);
42 BEGIN
43     l_cp_flag :=  NVL(fnd_profile.value('CONC_REQUEST_ID'), 0);
44     IF ( l_cp_flag > 0 ) THEN
45         l_timestamp := '[' || to_char(sysdate,'DD-MON-YY HH24:MI:SS') || '] ';
46         IF(p_debug_type = 1) THEN
47             FND_FILE.put_line(FND_FILE.LOG, l_timestamp || p_module_name|| p_procedure_name ||' >> '|| p_debug_info); --Bug#9415151
48         ELSIF(p_debug_type = 2) THEN
49             FND_FILE.put_line(FND_FILE.LOG, l_timestamp || p_module_name || p_procedure_name||' >> '|| p_var_name||': ' ||p_var_value); --Bug#9415151
50         ELSIF(p_debug_type = 3) THEN
51             FND_FILE.put_line(FND_FILE.LOG, l_timestamp || p_module_name || p_procedure_name||' >> [Log_APICallIn] - [' || p_call_api_name || '] >> '|| p_var_name||': ' ||p_var_value); --Bug#9415151
52         ELSIF(p_debug_type = 4) THEN
53             FND_FILE.put_line(FND_FILE.LOG, l_timestamp || p_module_name || p_procedure_name||' >> [Log_APICallOut] - [' || p_call_api_name || '] >> '|| p_var_name||': ' ||p_var_value);--Bug#9415151
54         END IF;
55     END IF;
56 END Log_Concurrent;
57 
58 -- API name   : Log_Statement
59 -- Type       : Private
60 -- Function   :  Level 1: Low-level progress reporting Log for Statements
61 --               Examples: "Obtaining connection from pool", "Got request parameter", "Set cookie with name, value"
62 -- Pre-reqs   : None
63 -- Parameters :
64 -- IN         : p_module_name IN VARCHAR2
65 --              p_procedure_name IN VARCHAR2
66 --              p_debug_info IN VARCHAR2
67 --
68 -- Version    : Current version 1.0
69 --
70 -- Notes      :
71 PROCEDURE Log_Statement (p_module_name IN VARCHAR2,
72                          p_procedure_name IN VARCHAR2,
73                          p_debug_info IN VARCHAR2)
74 IS
75 BEGIN
76   IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL AND LENGTH(p_debug_info)>0) THEN
77     FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT,p_module_name||' '||p_procedure_name,p_debug_info);
78     -- Write on concurrent log
79     Log_Concurrent(p_module_name => p_module_name,
80                    p_procedure_name => p_procedure_name,
81                    p_debug_info => p_debug_info,
82                    p_call_api_name => NULL,
83                    p_var_name => NULL,
84                    p_var_value => NULL,
85                    p_debug_type => 1);
86   END IF;
87 END Log_Statement;
88 
89 -- API name   : Log_Variable
90 -- Type       : Private
91 -- Function   : Level 1: Low-level progress reporting
92 --              Log for variable values
93 -- Pre-reqs   : None
94 -- Parameters :
95 -- IN         : p_module_name IN VARCHAR2
96 --              p_procedure_name IN VARCHAR2
97 --              p_var_name IN VARCHAR2
98 --              p_var_value IN VARCHAR2
99 --
100 -- Version    : Current version 1.0
101 --
102 -- Notes      :
103 PROCEDURE Log_Variable (p_module_name IN VARCHAR2,
104                         p_procedure_name IN VARCHAR2,
105                         p_var_name IN VARCHAR2,
106                         p_var_value IN VARCHAR2)
107 IS
108   l_debug_info VARCHAR2(200);
109 BEGIN
110   l_debug_info := p_var_name||': ' ||p_var_value;
111   IF (FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
112     FND_LOG.STRING(FND_LOG.LEVEL_STATEMENT,p_module_name||' '||p_procedure_name,l_debug_info);
113     -- Write on concurrent log
114     Log_Concurrent(p_module_name => p_module_name,
115                    p_procedure_name => p_procedure_name,
116                    p_debug_info => NULL,
117                    p_call_api_name => NULL,
118                    p_var_name => p_var_name,
119                    p_var_value => p_var_value,
120                    p_debug_type => 2);
121   END IF;
122 END Log_Variable;
123 
124 -- API name   : Log_BeginProc
125 -- Type       : Private
126 -- Function   : Level 2: API level progress reporting
127 --              Log for Beginning of Procedure/Function
128 -- Pre-reqs   : None
129 -- Parameters :
130 -- IN         : p_module_name IN VARCHAR2
131 --              p_procedure_name IN VARCHAR2
132 --
133 -- Version    : Current version 1.0
134 --
135 -- Notes      :
136 PROCEDURE Log_BeginProc (p_module_name IN VARCHAR2,
137                          p_procedure_name IN VARCHAR2)
138 IS
139 BEGIN
140     IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
141         FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,'BEGIN(+)');
142         -- Write on concurrent log
143         Log_Concurrent(p_module_name => p_module_name,
144                        p_procedure_name => p_procedure_name,
145                        p_debug_info => 'BEGIN(+)',
146                        p_call_api_name => NULL,
147                        p_var_name => NULL,
148                        p_var_value => NULL,
149                        p_debug_type => 1);
150     END IF;
151 END Log_BeginProc;
152 
153 -- API name   : Log_EndProc
154 -- Type       : Private
155 -- Function   : Level 2: API level progress reporting
156 --              Log for End of Procedure/Function
157 -- Pre-reqs   : None
158 -- Parameters :
159 -- IN         : p_module_name IN VARCHAR2
160 --              p_procedure_name IN VARCHAR2
161 --
162 -- Version    : Current version 1.0
163 --
164 -- Notes      :
165 PROCEDURE Log_EndProc (p_module_name IN VARCHAR2,
166                        p_procedure_name IN VARCHAR2)
167 IS
168 BEGIN
169   IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
170      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,'END(-)');
171      -- Write on concurrent log
172      Log_Concurrent(p_module_name => p_module_name,
173                     p_procedure_name => p_procedure_name,
174                     p_debug_info => 'END(-)',
175                     p_call_api_name => NULL,
176                     p_var_name => NULL,
177                     p_var_value => NULL,
178                     p_debug_type => 1);
179   END IF;
180 END Log_EndProc;
181 
182 -- API name   : Log_APICallIn
183 -- Type       : Private
184 -- Function   : Level 2: API level progress reporting
185 --              Log for Input Parameters API calls
186 -- Pre-reqs   : None
187 -- Parameters :
188 -- IN         : p_module_name IN VARCHAR2
189 --              p_procedure_name IN VARCHAR2
190 --              p_call_api_name IN VARCHAR2
191 --              p_in_param_name1 IN VARCHAR2   := NULL
192 --              p_in_param_value1 IN VARCHAR2  := NULL
193 --              p_in_param_name2 IN VARCHAR2   := NULL
194 --              p_in_param_value2 IN VARCHAR2  := NULL
195 --              p_in_param_name3 IN VARCHAR2   := NULL
196 --              p_in_param_value3 IN VARCHAR2  := NULL
197 --              p_in_param_name4 IN VARCHAR2   := NULL
198 --              p_in_param_value4 IN VARCHAR2  := NULL
199 --              p_in_param_name5 IN VARCHAR2   := NULL
200 --              p_in_param_value5 IN VARCHAR2  := NULL
201 --              p_in_param_name6 IN VARCHAR2   := NULL
202 --              p_in_param_value6 IN VARCHAR2  := NULL
203 --              p_in_param_name7 IN VARCHAR2   := NULL
204 --              p_in_param_value7 IN VARCHAR2  := NULL
205 --              p_in_param_name8 IN VARCHAR2   := NULL
206 --              p_in_param_value8 IN VARCHAR2  := NULL
207 --              p_in_param_name9 IN VARCHAR2   := NULL
208 --              p_in_param_value9 IN VARCHAR2  := NULL
209 --              p_in_param_name10 IN VARCHAR2  := NULL
210 --              p_in_param_value10 IN VARCHAR2 := NULL
211 --
212 -- Version    : Current version 1.0
213 --
214 -- Notes      :
215 PROCEDURE Log_APICallIn (p_module_name IN VARCHAR2,
216                          p_procedure_name IN VARCHAR2,
217                          p_call_api_name IN VARCHAR2,
218                          p_in_param_name1 IN VARCHAR2   := NULL,
219                          p_in_param_value1 IN VARCHAR2  := NULL,
220                          p_in_param_name2 IN VARCHAR2   := NULL,
221                          p_in_param_value2 IN VARCHAR2  := NULL,
222                          p_in_param_name3 IN VARCHAR2   := NULL,
223                          p_in_param_value3 IN VARCHAR2  := NULL,
224                          p_in_param_name4 IN VARCHAR2   := NULL,
225                          p_in_param_value4 IN VARCHAR2  := NULL,
226                          p_in_param_name5 IN VARCHAR2   := NULL,
227                          p_in_param_value5 IN VARCHAR2  := NULL,
228                          p_in_param_name6 IN VARCHAR2   := NULL,
229                          p_in_param_value6 IN VARCHAR2  := NULL,
230                          p_in_param_name7 IN VARCHAR2   := NULL,
231                          p_in_param_value7 IN VARCHAR2  := NULL,
232                          p_in_param_name8 IN VARCHAR2   := NULL,
233                          p_in_param_value8 IN VARCHAR2  := NULL,
234                          p_in_param_name9 IN VARCHAR2   := NULL,
235                          p_in_param_value9 IN VARCHAR2  := NULL,
236                          p_in_param_name10 IN VARCHAR2  := NULL,
237                          p_in_param_value10 IN VARCHAR2 := NULL)
238 IS
239 BEGIN
240   IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
241      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,' Call to '||p_call_api_name);
242      IF (p_in_param_name1 IS NOT NULL OR p_in_param_value1 IS NOT NULL) THEN
243         FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,p_in_param_name1||': '||p_in_param_value1);
244         -- Write on concurrent log
245         Log_Concurrent(p_module_name => p_module_name,
246                        p_procedure_name => p_procedure_name,
247                        p_debug_info => NULL,
248                        p_call_api_name => p_call_api_name,
249                        p_var_name => p_in_param_name1,
250                        p_var_value => p_in_param_value1,
251                        p_debug_type => 3);
252      END IF;
253      IF (p_in_param_name2 IS NOT NULL OR p_in_param_value2 IS NOT NULL) THEN
254         FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,p_in_param_name2||': '||p_in_param_value2);
255         -- Write on concurrent log
256         Log_Concurrent(p_module_name => p_module_name,
257                        p_procedure_name => p_procedure_name,
258                        p_debug_info => NULL,
259                        p_call_api_name => p_call_api_name,
260                        p_var_name => p_in_param_name2,
261                        p_var_value => p_in_param_value2,
262                        p_debug_type => 3);
263      END IF;
264      IF (p_in_param_name3 IS NOT NULL OR p_in_param_value3 IS NOT NULL) THEN
265         FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,p_in_param_name3||': '||p_in_param_value3);
266         -- Write on concurrent log
267         Log_Concurrent(p_module_name => p_module_name,
268                        p_procedure_name => p_procedure_name,
269                        p_debug_info => NULL,
270                        p_call_api_name => p_call_api_name,
271                        p_var_name => p_in_param_name3,
272                        p_var_value => p_in_param_value3,
273                        p_debug_type => 3);
274      END IF;
275      IF (p_in_param_name4 IS NOT NULL OR p_in_param_value4 IS NOT NULL) THEN
276         FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,p_in_param_name4||': '||p_in_param_value4);
277         -- Write on concurrent log
278         Log_Concurrent(p_module_name => p_module_name,
279                        p_procedure_name => p_procedure_name,
280                        p_debug_info => NULL,
281                        p_call_api_name => p_call_api_name,
282                        p_var_name => p_in_param_name4,
283                        p_var_value => p_in_param_value4,
284                        p_debug_type => 3);
285      END IF;
286      IF (p_in_param_name5 IS NOT NULL OR p_in_param_value5 IS NOT NULL) THEN
287         FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,p_in_param_name5||': '||p_in_param_value5);
288         -- Write on concurrent log
289         Log_Concurrent(p_module_name => p_module_name,
290                        p_procedure_name => p_procedure_name,
291                        p_debug_info => NULL,
292                        p_call_api_name => p_call_api_name,
293                        p_var_name => p_in_param_name5,
294                        p_var_value => p_in_param_value5,
295                        p_debug_type => 3);
296      END IF;
297      IF (p_in_param_name6 IS NOT NULL OR p_in_param_value6 IS NOT NULL) THEN
298         FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,p_in_param_name6||': '||p_in_param_value6);
299         -- Write on concurrent log
300         Log_Concurrent(p_module_name => p_module_name,
301                        p_procedure_name => p_procedure_name,
302                        p_debug_info => NULL,
303                        p_call_api_name => p_call_api_name,
304                        p_var_name => p_in_param_name6,
305                        p_var_value => p_in_param_value6,
306                        p_debug_type => 3);
307      END IF;
308      IF (p_in_param_name7 IS NOT NULL OR p_in_param_value7 IS NOT NULL) THEN
309         FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,p_in_param_name7||': '||p_in_param_value7);
310         -- Write on concurrent log
311         Log_Concurrent(p_module_name => p_module_name,
312                        p_procedure_name => p_procedure_name,
313                        p_debug_info => NULL,
314                        p_call_api_name => p_call_api_name,
315                        p_var_name => p_in_param_name7,
316                        p_var_value => p_in_param_value7,
317                        p_debug_type => 3);
318      END IF;
319      IF (p_in_param_name8 IS NOT NULL OR p_in_param_value8 IS NOT NULL) THEN
320         FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,p_in_param_name8||': '||p_in_param_value8);
321         -- Write on concurrent log
322         Log_Concurrent(p_module_name => p_module_name,
323                        p_procedure_name => p_procedure_name,
324                        p_debug_info => NULL,
325                        p_call_api_name => p_call_api_name,
326                        p_var_name => p_in_param_name8,
327                        p_var_value => p_in_param_value8,
328                        p_debug_type => 3);
329      END IF;
330      IF (p_in_param_name9 IS NOT NULL OR p_in_param_value9 IS NOT NULL) THEN
331         FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,p_in_param_name9||': '||p_in_param_value9);
332         -- Write on concurrent log
333         Log_Concurrent(p_module_name => p_module_name,
334                        p_procedure_name => p_procedure_name,
335                        p_debug_info => NULL,
336                        p_call_api_name => p_call_api_name,
337                        p_var_name => p_in_param_name9,
338                        p_var_value => p_in_param_value9,
339                        p_debug_type => 3);
340      END IF;
341      IF (p_in_param_name10 IS NOT NULL OR p_in_param_value10 IS NOT NULL) THEN
342         FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,p_in_param_name10||': '||p_in_param_value10);
343         -- Write on concurrent log
344         Log_Concurrent(p_module_name => p_module_name,
345                        p_procedure_name => p_procedure_name,
346                        p_debug_info => NULL,
347                        p_call_api_name => p_call_api_name,
348                        p_var_name => p_in_param_name10,
349                        p_var_value => p_in_param_value10,
350                        p_debug_type => 3);
351      END IF;
352   END IF;
353 END Log_APICallIn;
354 
355 -- API name   : Log_APICallOut
356 -- Type       : Private
357 -- Function   : Level 2: API level progress reporting
358 --              Log for Input Parameters API calls
359 -- Pre-reqs   : None
360 -- Parameters :
361 -- IN         : p_module_name IN VARCHAR2
362 --              p_procedure_name IN VARCHAR2
363 --              p_call_api_name IN VARCHAR2
364 --              p_in_param_name1 IN VARCHAR2   := NULL
365 --              p_in_param_value1 IN VARCHAR2  := NULL
366 --              p_in_param_name2 IN VARCHAR2   := NULL
367 --              p_in_param_value2 IN VARCHAR2  := NULL
368 --              p_in_param_name3 IN VARCHAR2   := NULL
369 --              p_in_param_value3 IN VARCHAR2  := NULL
370 --              p_in_param_name4 IN VARCHAR2   := NULL
371 --              p_in_param_value4 IN VARCHAR2  := NULL
372 --              p_in_param_name5 IN VARCHAR2   := NULL
373 --              p_in_param_value5 IN VARCHAR2  := NULL
374 --              p_in_param_name6 IN VARCHAR2   := NULL
375 --              p_in_param_value6 IN VARCHAR2  := NULL
376 --              p_in_param_name7 IN VARCHAR2   := NULL
377 --              p_in_param_value7 IN VARCHAR2  := NULL
378 --              p_in_param_name8 IN VARCHAR2   := NULL
379 --              p_in_param_value8 IN VARCHAR2  := NULL
380 --              p_in_param_name9 IN VARCHAR2   := NULL
381 --              p_in_param_value9 IN VARCHAR2  := NULL
382 --              p_in_param_name10 IN VARCHAR2  := NULL
383 --              p_in_param_value10 IN VARCHAR2 := NULL
384 --
385 -- Version    : Current version 1.0
386 --
387 -- Notes      :
388 PROCEDURE Log_APICallOut (p_module_name IN VARCHAR2,
389                           p_procedure_name IN VARCHAR2,
390                           p_call_api_name IN VARCHAR2,
391                           p_out_param_name1 IN VARCHAR2   := NULL,
392                           p_out_param_value1 IN VARCHAR2  := NULL,
393                           p_out_param_name2 IN VARCHAR2   := NULL,
394                           p_out_param_value2 IN VARCHAR2  := NULL,
395                           p_out_param_name3 IN VARCHAR2   := NULL,
396                           p_out_param_value3 IN VARCHAR2  := NULL,
397                           p_out_param_name4 IN VARCHAR2   := NULL,
398                           p_out_param_value4 IN VARCHAR2  := NULL,
399                           p_out_param_name5 IN VARCHAR2   := NULL,
400                           p_out_param_value5 IN VARCHAR2  := NULL,
401                           p_out_param_name6 IN VARCHAR2   := NULL,
402                           p_out_param_value6 IN VARCHAR2  := NULL,
403                           p_out_param_name7 IN VARCHAR2   := NULL,
404                           p_out_param_value7 IN VARCHAR2  := NULL,
405                           p_out_param_name8 IN VARCHAR2   := NULL,
406                           p_out_param_value8 IN VARCHAR2  := NULL,
407                           p_out_param_name9 IN VARCHAR2   := NULL,
408                           p_out_param_value9 IN VARCHAR2  := NULL,
409                           p_out_param_name10 IN VARCHAR2  := NULL,
410                           p_out_param_value10 IN VARCHAR2 := NULL)
411 IS
412 BEGIN
413   IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
414      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,' Returning from '||p_call_api_name);
415      IF (p_out_param_name1 IS NOT NULL OR p_out_param_value1 IS NOT NULL) THEN
416         FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,p_out_param_name1||': '||p_out_param_value1);
417         -- Write on concurrent log
418         Log_Concurrent(p_module_name => p_module_name,
419                        p_procedure_name => p_procedure_name,
420                        p_debug_info => NULL,
421                        p_call_api_name => p_call_api_name,
422                        p_var_name => p_out_param_name1,
423                        p_var_value => p_out_param_value1,
424                        p_debug_type => 4);
425      END IF;
426      IF (p_out_param_name2 IS NOT NULL OR p_out_param_value2 IS NOT NULL) THEN
427         FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,p_out_param_name2||': '||p_out_param_value2);
428         -- Write on concurrent log
429         Log_Concurrent(p_module_name => p_module_name,
430                        p_procedure_name => p_procedure_name,
431                        p_debug_info => NULL,
432                        p_call_api_name => p_call_api_name,
433                        p_var_name => p_out_param_name2,
434                        p_var_value => p_out_param_value2,
435                        p_debug_type => 4);
436 
437      END IF;
438      IF (p_out_param_name3 IS NOT NULL OR p_out_param_value3 IS NOT NULL) THEN
439         FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,p_out_param_name3||': '||p_out_param_value3);
440         -- Write on concurrent log
441         Log_Concurrent(p_module_name => p_module_name,
442                        p_procedure_name => p_procedure_name,
443                        p_debug_info => NULL,
444                        p_call_api_name => p_call_api_name,
445                        p_var_name => p_out_param_name3,
446                        p_var_value => p_out_param_value3,
447                        p_debug_type => 4);
448 
449      END IF;
450      IF (p_out_param_name4 IS NOT NULL OR p_out_param_value4 IS NOT NULL) THEN
451         FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,p_out_param_name4||': '||p_out_param_value4);
452         -- Write on concurrent log
453         Log_Concurrent(p_module_name => p_module_name,
454                        p_procedure_name => p_procedure_name,
455                        p_debug_info => NULL,
456                        p_call_api_name => p_call_api_name,
457                        p_var_name => p_out_param_name4,
458                        p_var_value => p_out_param_value4,
459                        p_debug_type => 4);
460 
461      END IF;
462      IF (p_out_param_name5 IS NOT NULL OR p_out_param_value5 IS NOT NULL) THEN
463         FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,p_out_param_name5||': '||p_out_param_value5);
464         -- Write on concurrent log
465         Log_Concurrent(p_module_name => p_module_name,
466                        p_procedure_name => p_procedure_name,
467                        p_debug_info => NULL,
468                        p_call_api_name => p_call_api_name,
469                        p_var_name => p_out_param_name5,
470                        p_var_value => p_out_param_value5,
471                        p_debug_type => 4);
472      END IF;
473      IF (p_out_param_name6 IS NOT NULL OR p_out_param_value6 IS NOT NULL) THEN
474         FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,p_out_param_name6||': '||p_out_param_value6);
475         -- Write on concurrent log
476         Log_Concurrent(p_module_name => p_module_name,
477                        p_procedure_name => p_procedure_name,
478                        p_debug_info => NULL,
479                        p_call_api_name => p_call_api_name,
480                        p_var_name => p_out_param_name6,
481                        p_var_value => p_out_param_value6,
482                        p_debug_type => 4);
483      END IF;
484      IF (p_out_param_name7 IS NOT NULL OR p_out_param_value7 IS NOT NULL) THEN
485         FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,p_out_param_name7||': '||p_out_param_value7);
486         -- Write on concurrent log
487         Log_Concurrent(p_module_name => p_module_name,
488                        p_procedure_name => p_procedure_name,
489                        p_debug_info => NULL,
490                        p_call_api_name => p_call_api_name,
491                        p_var_name => p_out_param_name7,
492                        p_var_value => p_out_param_value7,
493                        p_debug_type => 4);
494      END IF;
495      IF (p_out_param_name8 IS NOT NULL OR p_out_param_value8 IS NOT NULL) THEN
496         FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,p_out_param_name8||': '||p_out_param_value8);
497         -- Write on concurrent log
498         Log_Concurrent(p_module_name => p_module_name,
499                        p_procedure_name => p_procedure_name,
500                        p_debug_info => NULL,
501                        p_call_api_name => p_call_api_name,
502                        p_var_name => p_out_param_name8,
503                        p_var_value => p_out_param_value8,
504                        p_debug_type => 4);
505 
506      END IF;
507      IF (p_out_param_name9 IS NOT NULL OR p_out_param_value9 IS NOT NULL) THEN
508         FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,p_out_param_name9||': '||p_out_param_value9);
509         -- Write on concurrent log
510         Log_Concurrent(p_module_name => p_module_name,
511                        p_procedure_name => p_procedure_name,
512                        p_debug_info => NULL,
513                        p_call_api_name => p_call_api_name,
514                        p_var_name => p_out_param_name9,
515                        p_var_value => p_out_param_value9,
516                        p_debug_type => 4);
517      END IF;
518      IF (p_out_param_name10 IS NOT NULL OR p_out_param_value10 IS NOT NULL) THEN
519         FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,p_module_name||' '||p_procedure_name,p_out_param_name10||': '||p_out_param_value10);
520         -- Write on concurrent log
521         Log_Concurrent(p_module_name => p_module_name,
522                        p_procedure_name => p_procedure_name,
523                        p_debug_info => NULL,
524                        p_call_api_name => p_call_api_name,
525                        p_var_name => p_out_param_name10,
526                        p_var_value => p_out_param_value10,
527                        p_debug_type => 4);
528      END IF;
529   END IF;
530 END Log_APICallOut;
531 
532 -- API name   : Log_Event
533 -- Type       : Private
534 -- Function   : Level 3: High-level progress reporting Log for Events
535 --              Examples: "User authenticated successfully",
536 --              "Retrieved user preferences successfully", "Menu rendering completed"
537 -- Pre-reqs   : None
538 -- Parameters :
539 -- IN         : p_module_name IN VARCHAR2
540 --              p_procedure_name IN VARCHAR2
541 --              p_debug_info IN VARCHAR2
542 --
543 -- Version    : Current version 1.0
544 --
545 -- Notes      :
546 PROCEDURE Log_Event (p_module_name IN VARCHAR2,
547                      p_procedure_name IN VARCHAR2,
548                      p_debug_info IN VARCHAR2)
549 IS
550 BEGIN
551   IF (FND_LOG.LEVEL_EVENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL AND LENGTH(p_debug_info)>0) THEN
552       FND_LOG.STRING(FND_LOG.LEVEL_EVENT,p_module_name||' '||p_procedure_name,p_debug_info);
553       -- Write on concurrent log
554       Log_Concurrent(p_module_name => p_module_name,
555                      p_procedure_name => p_procedure_name,
556                      p_debug_info => p_debug_info,
557                      p_call_api_name => NULL,
558                      p_var_name => NULL,
559                      p_var_value => NULL,
560                      p_debug_type => 1);
561   END IF;
562 END Log_Event;
563 
564 -- API name   : Log_Exception
565 -- Type       : Private
566 -- Function   : Level 4: Warnings, Handled internal software failure (may need fix, but not critical)
567 --              Log for Exceptions
568 -- Pre-reqs   : None
569 -- Parameters :
570 -- IN         : p_module_name IN VARCHAR2
571 --              p_procedure_name IN VARCHAR2
572 --
573 -- Version    : Current version 1.0
574 --
575 -- Notes      :
576 PROCEDURE Log_Exception   (p_module_name IN VARCHAR2,
577                            p_procedure_name IN VARCHAR2)
578 IS
579 BEGIN
580   IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
581        FND_LOG.STRING(FND_LOG.LEVEL_EXCEPTION,p_module_name||' '||p_procedure_name,SQLERRM);
582        -- Write on concurrent log
583        Log_Concurrent(p_module_name => p_module_name,
584                       p_procedure_name => p_procedure_name,
585                       p_debug_info => SQLERRM,
586                       p_call_api_name => NULL,
587                       p_var_name => NULL,
588                       p_var_value => NULL,
589                       p_debug_type => 1);
590   END IF;
591 END Log_Exception;
592 
593 -- API name   : Log_ExpecError
594 -- Type       : Private
595 -- Function   : Level 5: External end-user error (typically requires end-user to fix the issue)
596 --              Log for Expected Error
597 -- Pre-reqs   : None
598 -- Parameters :
599 -- IN         : p_module_name IN VARCHAR2
600 --              p_procedure_name IN VARCHAR2
601 --              p_debug_info IN VARCHAR2
602 --
603 -- Version    : Current version 1.0
604 --
605 -- Notes      :
606 PROCEDURE Log_ExpecError (p_module_name IN VARCHAR2,
607                           p_procedure_name IN VARCHAR2,
608                           p_debug_info IN VARCHAR2 := NULL)
609 IS
610 BEGIN
611   IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
612     IF p_debug_info IS NOT NULL THEN
613        FND_LOG.STRING(FND_LOG.LEVEL_ERROR,p_module_name||' '||p_procedure_name,p_debug_info);
614     ELSE
615        FND_LOG.STRING(FND_LOG.LEVEL_ERROR,p_module_name||' '||p_procedure_name,SQLERRM);
616     END IF;
617     -- Write on concurrent log
618     Log_Concurrent(p_module_name => p_module_name,
619                    p_procedure_name => p_procedure_name,
620                    p_debug_info => NVL(p_debug_info, SQLERRM),
621                    p_call_api_name => NULL,
622                    p_var_name => NULL,
623                    p_var_value => NULL,
624                    p_debug_type => 1);
625   END IF;
626 END Log_ExpecError;
627 
628 -- API name   : Log_UnexpecError
629 -- Type       : Private
630 -- Function   : Level 6: Unhandlred internal software failure (typically requires cod/env fix)
631 --              Log for Unexpected Error
632 -- Pre-reqs   : None
633 -- Parameters :
634 -- IN         : p_module_name IN VARCHAR2
635 --              p_procedure_name IN VARCHAR2
636 --
637 -- Version    : Current version 1.0
638 --
639 -- Notes      :
640 PROCEDURE Log_UnexpecError (p_module_name IN VARCHAR2,
641                             p_procedure_name IN VARCHAR2)
642 IS
643 BEGIN
644   IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
645        FND_LOG.STRING(FND_LOG.LEVEL_UNEXPECTED,p_module_name||' '||p_procedure_name,SQLERRM);
646        -- Write on concurrent log
647        Log_Concurrent(p_module_name => p_module_name,
648                       p_procedure_name => p_procedure_name,
649                       p_debug_info => SQLERRM,
650                       p_call_api_name => NULL,
651                       p_var_name => NULL,
652                       p_var_value => NULL,
653                       p_debug_type => 1);
654   END IF;
655 END Log_UnexpecError;
656 
657 END INL_LOGGING_PVT;