亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mail.txt

?? pl/sql中記log的函數
?? TXT
字號:
Attached is a Zip file (renamed as log4plsql.dat to pass spam/virus
filters) with my modifications to the 3.1.2.1 version for people to review and see what they think.  

We needed additional PL/SQL functionality like the Log4J MDC, and we needed the Java listener to be thread safe and highly flexible in a J2EE App Container context.  We didn't care if each instance in a cluster started it's own listener on a pipe, as hopefully the logging would be standardized/centralized with Log4J, but we did care that only one listener per pipe was used in a given VM.

We also formatted and extended the DBMS_OUTPUT code a bit.

Things I've added/fixed/changed:

PMDC package
a package to add Log4J style Mapped Domain Context.  Currently only output to the Log4J pipe, not to the table or other output locations, as there is no pattern layout concept yet.

PLOG_PIPE package
Contains a procedure for reading the next Log4Plsql pipe message and returning the different fields as OUT parameters.  This means that the Java process only needs to make one call, not many to get each log message, which is MUCH faster.

PLOG
Modified the pipe packing section to pass additional fields for the MDC data (passed as two delimited strings, one for names, the other for values, and a third field for the separator character).

The date is passed as a DATE object, instead of text, and the hundredths of seconds are passed as a number.  The Java process I've written then reads the date as a Timestamp, gets the milliseconds, and adds hundredths*10 to get a raw timestamp to use for the log event.  This way Log4J logs the message with the actual database timestamp it was created with, and can still do any other date formatting you want.

The DBMS_OUTPUT code has been cleaned up and extended.  A sub-block of code was created inside the IF statement to keep the local variables used for processing the output text local to the code that uses them, rather than declared in the procedure header.  Makes it easier to read in my opinion.  

We (myself and another developer who is starting to use this in our
project) have added some formatting to the DMBS_OUTPUT section to make the result more readable in SQLPLUS and other tools.

LOG_CTX, PLOG.INIT, and PLOGPARAM now know about a DBMS_OUTPUT line wrap length value.  Messages longer than this value are output on multiple lines.  This replaces the hard-coded max value of 255 with a value that can be session-specific or even message-specific if desired.  The default is still 255.

DBMS_OUTPUT data is logged with the header on the same line as the start of the message.  If wrapping is needed, wrapped lines are left-padded to the width of the header.  Here is an example of output:

13:33:33:09-ERROR- anonymous block  this is my really long error message str
                                    ing that should force wrapping with the 
                                    header text prepended to it.

We like this better, but it may compress log messages too much for some people.  Let me know what you think.


Java BackgroundProcess
I completely re-wrote the pipe listening portion of this to take advantage of the new PLOG_PIPE package to get a full log message in one call and make the whole thing robust, safe, and scalable for our enterprise application running in an App Container such as OC4J, WebLogic, or WebSphere.

The existing use with the standalone, runable JAR file is still available, but if you want to integrate the background process in a larger application there is new functionality to do so.  

I have factory methods on the listener that enforce only one listener per database URL/Username/PipeName combination, so you don't needlessly start multiple listeners per pipe by accident, and added thread-safe ways to stop/start listening on a given pipe.

The listener class DbLogListener uses a DbLogHelper instance to allow for extensibility without needing to mess with the complex DbLogListener class.  This helper has methods for getting the Logger instance to use for a given message and pre- and post- logging methods to customize things like the MDC and NDC, and clean up after logging a message.

The DbLogListener can store a base Logger name to use for getting the desired Logger instance for each message read from the pipe.

The default is the RootLogger if none is supplied.

DbLogHelper creates a default Logger name for each message from 

DbLogListener.getRootLogger() + current message section

So by default the section name = logger name, if the root logger is the base logger for the DbLogListener.

If you create the DbLogListener with a default Logger name of "backgroundProcess" then all messages will use descendants of that Logger.

Currently the Java process does not support custom levels from Log4Plsql.  I needed it to work with log messages from possibly many databases, each of which would have it's own Log4Plsql version installed.  Dynamic Levels would have had to be read/stored by connection, which would have added significant code overhead for very little functionality.

We have chosen at this point to use the standard levels only, which is what the Log4J project recommends anyway.  Besides, custom levels would need to map to some custom Level in Java, otherwise they would not be logged, and using some sort of reflection to dynamically load Level classes would be very expensive from a performance standpoint.

With the re-write of the Java code, there is no SQLJ dependency anymore
- I just use straight JDBC code, as there isn't that much for it to do.

The constructor that uses the XML configuration parameters does need to find the OracleDataSource class, which is in the JDBC driver JAR classes12.jar, and it needs the XML parser in xmlparserv2.jar.

Other classes were only modified to reference the new DbLogListener appropriately, they were otherwise unchanged.

Feedback is welcome, I'm happy to answer any questions or field criticisms of this code.

Greg Woolsey
Sabrix, Inc.
Lake Oswego, Oregon
USA

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美一区二区三区久本道91| 久久伊人中文字幕| 国内成人自拍视频| 亚洲国产成人av网| 国产清纯在线一区二区www| 欧美少妇一区二区| 福利一区福利二区| 黑人精品欧美一区二区蜜桃| 亚洲免费av高清| 国产精品成人一区二区三区夜夜夜| 在线电影一区二区三区| 色网站国产精品| eeuss鲁一区二区三区| 99国产欧美另类久久久精品| 久久精品免费观看| 日韩二区在线观看| 五月天一区二区三区| 亚洲人成网站影音先锋播放| 中文av一区二区| 国产欧美日本一区二区三区| 日韩免费一区二区| 欧美va天堂va视频va在线| 欧美夫妻性生活| 日韩一区二区不卡| 日韩午夜激情视频| 欧美精品一区二区三区一线天视频| 91精品1区2区| 欧美午夜电影在线播放| 色综合久久中文综合久久牛| 一本大道综合伊人精品热热| 色天使色偷偷av一区二区| 在线国产电影不卡| 欧美日本一道本在线视频| 91精品在线观看入口| 精品国产乱码久久久久久牛牛| 日韩无一区二区| 国产欧美精品一区二区色综合朱莉| 国产网站一区二区| 一区二区三区四区av| 亚洲成人动漫在线免费观看| 日本视频免费一区| 成人午夜电影网站| 欧美专区日韩专区| 精品播放一区二区| 亚洲狼人国产精品| 精品一区精品二区高清| 91蝌蚪porny成人天涯| 欧美一区午夜精品| 亚洲欧洲成人自拍| 久久国产精品免费| 在线亚洲精品福利网址导航| 日韩欧美久久久| 亚洲精品国产无天堂网2021| 午夜欧美2019年伦理| 成人福利视频在线看| 欧美裸体bbwbbwbbw| 国产日韩欧美综合在线| 亚洲国产精品视频| 91丨porny丨蝌蚪视频| 2020国产精品| 久久精品99国产精品日本| 色婷婷综合在线| 国产精品久久久久久久久图文区 | 免费在线观看成人| 欧美性猛交xxxx黑人交| 国产欧美一区视频| 国产一区啦啦啦在线观看| 欧美酷刑日本凌虐凌虐| 亚洲免费av观看| 国产亚洲欧美在线| 欧美sm美女调教| 国产亚洲综合在线| 蜜臀精品一区二区三区在线观看 | 久久丁香综合五月国产三级网站| 欧美私模裸体表演在线观看| 亚洲老妇xxxxxx| 欧洲av在线精品| 亚洲gay无套男同| 欧美人与性动xxxx| 奇米综合一区二区三区精品视频| 7777精品伊人久久久大香线蕉最新版| 亚洲在线视频免费观看| 欧美性videosxxxxx| 亚洲一区二区精品久久av| 欧美卡1卡2卡| 久久精品国产精品亚洲精品| 欧美精品一区二区三区蜜桃视频| 老司机午夜精品99久久| 国产欧美一区二区三区网站| 成人一级黄色片| 亚洲最新视频在线播放| 欧美日韩精品免费| 国产精品一级黄| 亚洲精品乱码久久久久久日本蜜臀| 欧美亚一区二区| 国产乱码精品一区二区三区忘忧草 | 国产精品一二三四五| 亚洲图片有声小说| 国产日韩欧美高清| 欧美日韩在线不卡| 成人精品国产一区二区4080| 亚州成人在线电影| 欧美国产精品v| 日韩欧美一级精品久久| 成人h精品动漫一区二区三区| 日日夜夜精品免费视频| 国产精品乱码久久久久久| 日韩三级视频在线看| 色婷婷久久久久swag精品| 国产乱码精品一区二区三区av| 一区二区三区免费观看| 中文字幕国产一区| 欧美电影免费观看完整版| 欧美日韩成人在线| 色综合一个色综合| 国产不卡一区视频| 精品在线播放免费| 美女久久久精品| 日韩黄色小视频| 日韩av在线播放中文字幕| 一区二区理论电影在线观看| 国产精品免费免费| 亚洲丝袜精品丝袜在线| 国产精品久久久久三级| 国产精品三级av在线播放| 欧美xfplay| 精品成人一区二区三区四区| 2023国产精品| 国产欧美一区二区三区在线看蜜臀 | 成人午夜免费av| 成人免费看黄yyy456| 丰满少妇久久久久久久| 成人精品视频网站| 色综合一区二区| 91.xcao| 国产亚洲综合在线| 亚洲少妇屁股交4| 亚洲国产精品视频| 久久不见久久见中文字幕免费| 国产一区免费电影| 色偷偷久久一区二区三区| 欧美精品免费视频| 久久久精品国产免费观看同学| 国产欧美日韩在线| 亚洲国产视频一区二区| 激情综合五月婷婷| 91麻豆免费视频| 日韩一区二区麻豆国产| 亚洲国产精品av| 亚洲成人激情av| 丁香一区二区三区| 欧美写真视频网站| 中文字幕免费一区| 日产精品久久久久久久性色| 国产精品中文有码| 欧美一区二区网站| 国产精品动漫网站| 国产精品538一区二区在线| 欧美日韩黄视频| 依依成人精品视频| 国产91综合一区在线观看| 5566中文字幕一区二区电影| **性色生活片久久毛片| 国产精品原创巨作av| 欧美一区二区三区思思人| 夜夜精品视频一区二区| 成人少妇影院yyyy| 欧美电视剧在线观看完整版| 亚洲电影一区二区| 91理论电影在线观看| 国产精品免费看片| 国产999精品久久久久久| 精品美女被调教视频大全网站| 亚洲综合偷拍欧美一区色| 91视视频在线直接观看在线看网页在线看| 精品免费国产二区三区| 麻豆国产欧美一区二区三区| 欧美一区二区久久久| 五月综合激情网| 日韩欧美中文字幕公布| 美国十次综合导航| 欧美成人高清电影在线| 国产一区二区在线观看视频| 欧美成人一级视频| 久久超级碰视频| 欧美激情一区在线观看| 97久久精品人人做人人爽50路| 国产精品久久久久久久午夜片| 成人黄色av电影| 亚洲线精品一区二区三区 | 欧美老肥妇做.爰bbww| 免费在线观看一区二区三区| 欧美va在线播放| 色琪琪一区二区三区亚洲区| 日韩av网站免费在线| 国产亚洲精品久| 欧美性受xxxx| 国产精选一区二区三区| 一区二区欧美精品| 久久久亚洲国产美女国产盗摄|