[ https://issues.apache.org/jira/browse/LOG4J2-695?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14051184#comment-14051184 ]
SIBISH BASHEER edited comment on LOG4J2-695 at 7/3/14 8:42 AM: --------------------------------------------------------------- In linux, log4j2 async took 129 seconds more than log4j synchronous. Made the performance class as a single class. Attached is the code: Windows : 500,000 log4j2 difference :: 17607383581 log4j difference :: 28690450405 log4j2 improved by :: 11083066824 log4j2 improved by Seconds :: 11.083066824 Windows : 5,000,000 log4j2 difference :: 322726682295 log4j difference :: 293706958261 log4j2 improved by :: -29019724034 log4j2 improved by Seconds :: -29.019724034 Linux : 5,000,000 log4j2 difference :: 395297817532 log4j difference :: 265578004554 log4j2 improved by :: -129719812978 log4j2 improved by Seconds :: -129.719812978 2.5G ./log4j2 2.5G ./log4j Same amount of data generated was (Author: sibbsnb): In linux, log4j2 async took 129 seconds more than log4j synchronous. Made the performance class as a single class. Attached is the code: Windows : 500,000 log4j2 difference :: 17607383581 log4j difference :: 28690450405 log4j2 improved by :: 11083066824 log4j2 improved by Seconds :: 11.083066824 Linux : 5,000,000 log4j2 difference :: 395297817532 log4j difference :: 265578004554 log4j2 improved by :: -129719812978 log4j2 improved by Seconds :: -129.719812978 2.5G ./log4j2 2.5G ./log4j Same amount of data generated > Custom Logger with restrictions on existing methods > --------------------------------------------------- > > Key: LOG4J2-695 > URL: https://issues.apache.org/jira/browse/LOG4J2-695 > Project: Log4j 2 > Issue Type: Bug > Components: API > Reporter: SIBISH BASHEER > Labels: customlogger > Attachments: AppAsyncMain.java, CustomLogger.java, CustomLogger.java, > final code V2 7 2 2014.zip, final code custom logger.zip, performance log4j > vs log4j2.zip, performance log4j vs log4j2.zip > > > I have been looking at the Custom/Extended logger discussions. But none of > them seems to fulfil what i am looking for. > 1) I want custom methods as below: > {code} > private static CustomLogger logger = > CustomLogger.getLogger(AppAsyncMain.class); > > logger.info( transaction_id, app_name + event_name + > "inside the loop" + "inside the loop of > the sample app" + > "success" + "looped in" + "loop_count" + > String.valueOf(i)); > {code} > > log: > {code} > 2014-06-30 16:09:28,268 log_level="INFO" thread_name="main" > class_name="com.custom.samplelog4j.AppAsyncMain" > transaction_id="79ea1071-9565-405a-aa18-75d271694bf2" > event_id="dd5c69c0-4400-41fd-8a2e-5d538d8e8c9b" app="Sample Logging SDK App" > event_name="Sample Event" action="start of sample app" desc="start of api" > result="success" reason="start" token="abcdefg" alias="a...@gmail.com" > {code} > > 2) I want to show warning in existing logger methods so the teams using the > custom logger doesn't use these methods other than for testing: > {code} > logger.info("start of statement"); > {code} > > log: > {code} > 2014-06-30 16:12:31,065 log_level="INFO" thread_name="main" > class_name="com.custom.samplelog4j2.AppAsyncMain" start of statement > customlogger_warning="method not recommended for production use" > {code} > > 3) Custom validations for the fields: > {code} > private static String validateFields(String app_name, String event_name, > String action, String desc, Result result, String > reason) { > String validateStatus = ""; > if (!ValidateAppName(app_name)) { > validateStatus = "app_name"; > } else if (!ValidateEventName(event_name)) { > validateStatus = "event_name"; > } else if (!ValidateAction(action)) { > validateStatus = "action"; > } else if (!ValidateDesc(desc)) { > validateStatus = "desc"; > } else if (!ValidateReason(result, reason)) { > validateStatus = "reason"; > } > return validateStatus; > } > {code} > Options tried: > 1. > * extended ExtendedLoggerWrapper > * created the map of the Custom logger > * This option was failing because of "writing to a closed appender" > * Attached is the code "CustomLogger.java" > > 2. Modified the AbstractLogger in Trunk and added the below methods: > {code} > @Override > public void info(final String message) { > String updtMessage = message + " amexlogger_error=\"Incorrect method > used\""; > logIfEnabled(FQCN, Level.INFO, null, updtMessage, (Throwable) null); > } > public void info(final String transactionId, final String app_name, final > String event_name, final String action, final String desc, final String > result, final String reason, final String... moreFields) { > String message = "transaction_id=" + transactionId + " " + "app_name=" > + app_name + " " + "event_name=" + event_name + " " + "action=" + action; > > logIfEnabled(FQCN, Level.INFO, null, message, (Throwable) null); > } > {code} > I don't want to modify the methods inside the log4j-api. > > Please help me with the correct approach on how to use log4j2 for this > usecase. > Thanks > Sibish -- This message was sent by Atlassian JIRA (v6.2#6252) --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org