[prev in list] [next in list] [prev in thread] [next in thread] 

List:       log4j-dev
Subject:    [jira] [Created] (LOG4J2-695) Custom Logger with restrictions on existing methods
From:       "SIBISH BASHEER (JIRA)" <jira () apache ! org>
Date:       2014-06-30 23:27:24
Message-ID: JIRA.12724594.1404170759631.76826.1404170844288 () arcas
[Download RAW message or body]

SIBISH BASHEER created LOG4J2-695:
-------------------------------------

             Summary: 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


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:
    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));
					
	log:
	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="abc@gmail.com"   
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:

   logger.info("start of statement");
   
   log:
   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"   
3) Custom validations for the fields:
    	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;
	}

Options tried:
1) a) extended ExtendedLoggerWrapper
   b) created the map of the Custom logger
   c) This option was failing because of "writing to a closed appender"
   d) Attached is the code "CustomLogger.java"
   
2) Modified the AbstractLogger in Trunk and added the below methods:
      @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);
    }

	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-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic