98..Etc/Log4J2008. 7. 8. 17:39
반응형

A simple Log4J example

By Alvin J. Alexander, devdaily.com

The following class is a very simple example that initializes, and then uses, the Log4J logging library for Java applications. As you can see the configuration is pretty simple.

package com.devdaily.log4jdemo;

import org.apache.log4j.Category;
import org.apache.log4j.PropertyConfigurator;
import java.util.Properties;
import java.io.FileInputStream;
import java.io.IOException;

public class Log4JDemo
{
  static final Category log = Category.getInstance(Log4JDemo.class);
  static final String LOG_PROPERTIES_FILE = "lib/Log4J.properties";

  public static void main(String[] args)
  {
    // call our constructor
    new Log4JDemo();
    // Log4J is now loaded; try it
    log.info("leaving the main method of Log4JDemo");
  }

  public Log4JDemo()
  {
    initializeLogger();
    log.info( "Log4JDemo - leaving the constructor ..." );
  }

  private void initializeLogger()
  {
    Properties logProperties = new Properties();

    try
    {
      logProperties.load(new FileInputStream(LOG_PROPERTIES_FILE));
      PropertyConfigurator.configure(logProperties);
      log.info("Logging initialized.");
    }
    catch(IOException e)
    {
      throw new RuntimeException("Unable to load logging property " + LOG_PROPERTIES_FILE);
    }
  }
}

After a few class level fields are created, the action begins with the main method, which first calls the constructor for this class. The constructor then calls the initializeLogger method. This method actually does the work of loading the Log4J properties file. It then calls the configure method of the PropertyConfigurator class.

Once this is done I call the info method of the log object several times. Notice that I could have also called other methods like logger.warn(), log.debug(), log.error(), or log.fatal(), but to keep it simple I'm just showing log.info().

The Log4J Properties File

Before I leave this quick tip I also need to show the Log4J properties file that I'm using. My file is named Log4J.properties, and for the purpose of this demonstration I'm keeping it in a sub-directory of my project named lib. Here are the contents:

# STDOUT appender
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=%d %p [%t] %C{1} - %m\n

# use the STDOUT appender. set the level to INFO.
log4j.category.com.devdaily.log4jdemo.Log4JDemo=INFO, STDOUT


Posted by 1010
98..Etc/Log4J2008. 7. 8. 17:37
반응형
Posted by 1010
98..Etc/Etc...2008. 7. 7. 17:47
반응형
웹사이트 점검 및 분석 서비스

<FORM name=f1 action=check.php>

점검 <INPUT type=checkbox value=WHOIS name=WHOIS> 도메인 검색 및 조회(Whois)  <INPUT type=checkbox value=LOOKUP name=LOOKUP> DNS Lookup
<INPUT size=70 value=www.google.co.kr name=URL> <INPUT type=submit value=확인>   읽어보기
( 예 ) http://www.ihelpers.co.kr/programming/right11_list.phtml?TYPE=4&KEY=&FIELD=&PAGE=2
</FORM>
<FORM name=df action=dns.php method=get>
DNS Lookup
도메인 : <INPUT maxLength=22 value=ihelpers.co.kr name=domain> <INPUT type=submit value=확인> <INPUT type=checkbox CHECKED value=A name=A>A Record <INPUT type=checkbox CHECKED value=MX name=MX>MX Record <INPUT type=checkbox value=SCANPORT name=SCANPORT>Scan Port <INPUT type=checkbox value=RELAY name=RELAY>Check Relay
( 예 ) ihelpers.co.kr or 168.123.68.1 </FORM>

도메인 검색 및 조회(Whois)
<FORM name=wf action=whois.php>도메인 : <INPUT value=ihelpers name=DOMAIN> <INPUT type=submit value=전송> <INPUT type=hidden value=C name=WC> <INPUT type=radio CHECKED value=L name=TYPE>등록여부검색 <INPUT type=radio value=V name=TYPE>등록내용조회 </FORM>

웹서버 정보 조회
<FORM name=fw action=webserver.php>Host or URL : <INPUT size=50 value=www.google.co.kr name=URL> <INPUT type=submit value=전송> <INPUT type=radio CHECKED value=HEAD name=TYPE>Head <INPUT type=radio value=GET name=TYPE>Get
[ 예 ] www.ihelpers.co.kr,http://www.ihelpers.co.kr/webtools/index.php </FORM>

링크 점검
<FORM name=fw action=checkLinks.php>URL : <INPUT size=50 value=www.ihelpers.co.kr name=URL> <INPUT type=submit value=전송>
[ 예 ] www.ihelpers.co.kr,http://www.ihelpers.co.kr/webtools/index.php </FORM>

<FORM name=fe action=checkEmail.php>이메일 점검
Email : <INPUT onclick="document.fe.EMAIL.value='';" size=30 value=smson@ihelpers.co.kr name=EMAIL> <INPUT type=submit value=전송> <INPUT type=checkbox CHECKED value=V name=V>Verbose
( 예 ) smson@ihelpers.co.kr </FORM>

Posted by 1010
98..Etc/Etc...2008. 7. 7. 17:45
반응형
Posted by 1010
98..Etc/Etc...2008. 7. 7. 17:32
반응형
[스크랩] [엑셀] 주민등록번호 뒷자리 ******로 채우기
조회(12)
콤퓨터관련 | 2008/01/30 (수) 21:08
공감하기(0) | 스크랩하기(0)
오늘은 엑셀 묻고 답하기 게시판에 [ryujoo]님의 질문에 대해 [khan..]님이 답변한 내용을 소개합니다.

(엑셀 묻고 답하기 게시물 번호: 46251, 사용버전: Excel 2003)
[질문]주민등록번호 DATA의 숫자들 중 뒷자리 6개의 숫자를 ‘*’으로 표시 할 수 있나요?
ex) 123456-1234567를 123456-1****** 으로 표시하려고 합니다.

또, 한 셀에 두 개의 주민등록번호가 있을 경우도 있습니다. 이럴 경우에도 적용 가능한 방법 좀 부탁 드립니다.
[답변]IF, LEN, REPLACE, SEARCH 함수를 이용하여 다음과 같은 수식을 사용합니다.

=IF(LEN(B2)>15,REPLACE(REPLACE(B2,SEARCH("-",B2)+2,6,"******"),SEARCH("-",B2,8)+2,6,"******"),REPLACE(B2,SEARCH("-",B2)+2,6,"******"))
  STEP> 따라하기

아래와 같이 가상의 주민등록번호가 입력되어 있다고 가정하겠습니다.
<1> 한 셀에 입력된 한 개 또는 그 이상의 주민등록번호의 뒷자리 6개의 숫자를 ‘*’기로 대신 표시하기 위해서 B1셀에 다음과 같은 수식을 입력합니다.
=IF(LEN(A1)>15,REPLACE(REPLACE(A1,SEARCH("-",A1)+2,6,"******"),SEARCH("-",A1,8)+2,6,"******"),REPLACE(A1,SEARCH("-",A1)+2,6,"******"))
<2> B1셀에 다음과 같이 결과가 표시됩니다.
<3> B1셀의 수식을 자동 채우기 기능을 이용하여 B5셀까지 복사합니다.
[풀이]
LEN함수를 이용하여 한 셀에 주민등록번호가 1개가 입력되어 있는지, 2개가 입력되어 있는지 구분합니다.
입력된 데이터의 길이가 15자리 이하인 경우에는 REPLACE 함수를 한번 이용하여 뒷자리 6개의 숫자를 ‘*’로 바꿔주고, 15자리 이상인 경우에는 REPLACE 함수를 2번 이용하여 작업을 두 번 수행합니다.
이때 SEARCH함수를 살펴보면 SEARCH("-",A1,8)+2,6,"******")라고 하여 8번째 이후에 입력된 ‘-’의 위치를 반환하도록 되어 있습니다.
[참고] 함수
함수명 설   명
REPLACE 지정한 문자 수에 따라 문자열의 일부를 다른 문자열로 바꿉니다.
[형식] REPLACE(old_text,start_num,num_chars,new_text)
Old_text: 바꾸려는 문자열입니다.
Start_num: old_text에서 바꿀 문자의 위치입니다.
Num_chars: REPLACE가 old_text에서 new_text로 바꿀 문자열의 수입니다.
New_text: old_text에 바꾸어 넣을 새 문자열입니다
[예] REPLACE(A1,2,6,"******")
입력: A1=> 1111111
결과: 1******
해설: A1셀에 입력된 데이터의 2번째 자리부터 6개를 ‘*’로 바꿔줍니다.
SEARCH start_num부터 시작하여 특정 문자 또는 텍스트 문자열이 처음 발견되는 문자의 위치를 반환합니다
[형식] SEARCH(find_text,within_text,start_num)
Find_text: 찾고자 하는 텍스트입니다. find_text에 와일드카드 문자인 물음표(?)와 별표(*)를 사용할 수 있습니다. 물음표는 한 문자에 해당하고 별표는 일련의 문자에 해당합니다. 실제 물음표나 별표를 찾으려면 문자 앞에 물결표(~)를 입력합니다.
within_text: find_text를 찾으려는 텍스트입니다.
start_num: within_text에서 찾기 시작할 문자의 위치입니다.
[예] SEARCH("-",A1)
입력: A1셀=> 123456-1234567
결과: 7
해설: A1셀에 입력된 데이터에서 ‘-’위치를 알려줍니다.
LEN 문자열의 문자 수를 구합니다
[형식] LEN(text)
Text: 길이를 알려는 문자열로서 공백도 문자로 계산됩니다.
[예] LEN(A1)
입력: A1셀=> 123456-1234567
결과: 14
해설: A1셀에 입력된 문자열의 문자 수를 계산하여 줍니다.
 
출처 : 오피스 튜터
원본 : [엑셀] 주민등록번호 뒷자리 ******로 채우기
Posted by 1010
98..Etc/Etc...2008. 7. 7. 17:27
반응형

브라우저에 붙여서 웹 개발시 도움이 될만한 툴이 다음처럼 몇가지 있습니다.

# Explorer용
1. IE Developer Toolbar
2. IE HTTP Analyzer

# Firefox용
3. Firebug
4. Web Developer Extension

Posted by 1010
98..Etc/Error Log2008. 7. 7. 16:14
반응형

code too large for try statement 라는 에러..


이 에러를 난.. jsp페이지를 만들다가 봤다..


헐.. jsp 페이지가 64K를 넘으면 난다고 하는데.. 훔..


해결??


Weblogic.xml에..

<jsp-descriptor>.... </jsp-descriptor>

안에..


<jsp-param>
  <param-name>noTryBlocks</param-name>
  <param-value>true</param-value>
 </jsp-param>


를 넣어야 한다.

Posted by 1010
98..Etc/Error Log2008. 7. 7. 14:20
반응형

404에러가 나면서 web.xml에 있는 servlet을 찾을수가 없다고 영어가 나올때.

서버킬때도 문제가 없고

분명히 server.xml파일도 자료가 있는 해당 디렉토리로 연결했는데

404에러가 뜰경우


C:\j2sdk1.4.2_14\jre\lib\ext

톰켓에 있는 servlet-api.jar 파일을 복사하여 붙여넣는다.

그리고 이클립스를 재실행하면 빨간줄은 없어진다.



========


ext폴더에 servlet-api.jar를 추가해놨는데도 에러가 계속된다면 그 해당 프로젝트의 특성으로 들어가 빌드를 보면 자바빌드가 되어 있다 그 자바빌드를 열어보면 servlet-api는 없을것이다. 여기서 추가시켜줘야한다.


========

그냥 빌드에서 톰켓에 있는 servlet-api.jar를 추가시켜줘도 된다 굳이 ext폴더로 옮길 필요가 없어보인다..

Posted by 1010
98..Etc/Error Log2008. 7. 7. 14:18
반응형
 illegal start of expression
 구문오류 
Posted by 1010
98..Etc/Error Log2008. 7. 7. 14:18
반응형

/main/bottom.jsp(12,31) equal symbol expected


bottom 파일에 "" , '  등 부호가 잘못되었다...

Posted by 1010