SLF4J(Simple Logging Facade for Java)

9月 30, 2010 · Posted in Java, SLF4J · Comment 

SLF4J。Javaのロギングフレームワークのトレンド。
様々なロギングライブラリのFacadeとして利用する。

環境設定(eclipse+maven2. 直接jarファイルを入手する場合は以下の手順は無視!)

1.eclipseにMaven2プラグインを導入する

m2eclipse
m2eclipse – EclipseでMaven2を利用するためのプラグイン

2.プロジェクトを作成してMavenの管理を有効にする

ファイル→新規→プロジェクト→その他→Javaプロジェクトを作成。作成したら、プロジェクトのコンテキストメニューから、「Maven]→「Enable Dependency Management」を選択。

3.pom.xmlの修正

プロジェクト上に作成されたpom.xmlを開き、Dependencyタブを選択する。

addボタンを押して、以下のように設定する。

  • org.slf4jと入力→slf4j-apiを追加(本体)

今回の例ではSLF4Jとlogbackを連携させるため、logbackの必要ライブラリも同時に入手しておく。
実務などで、利用しない場合は不要。

  • ch.qos.logbackと入力→logback-coreを追加(logback本体)
  • ch.qos.logbackと入力→logback-classicを追加(slf4jとlogback連携用)

HelloWorld!

クイックスタート

Main.java

package sample;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Main {
	public static void main(String[] args) {
		Main m = new Main();
		m.execute();
	}

	public void execute() {
		Logger logger = LoggerFactory.getLogger(Main.class);
		String message = "Hello SLF4J!";
		logger.trace(message);
		logger.debug(message);
		logger.info(message);
		logger.warn(message);
		logger.error(message);
	}
}

とりあえず、設定ファイルなしに実行。

コンソールにtraceを除くログが出力された。

コンフィグファイル(logback.xml)を作成してログ出力

デフォルトではdebugレベルに設定されているようなので、設定ファイルを追加してtraceログも出力してみる。
ライブラリにlogbackを利用しているのでクラスパス配下にlogback.xmlを追加。

logback.xml

<configuration>
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<Target>System.out</Target>
		<layout class="ch.qos.logback.classic.PatternLayout">
			<Pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
			</Pattern>
		</layout>
	</appender>

	<logger name="sapmle.core">
		<level value="INFO" />
	</logger>

	<root>
		<level value="TRACE" />
		<appender-ref ref="STDOUT" />
	</root>
</configuration>

実行

でた!

別のロギングライブラリを利用してみる

log4j。

依存関係の変更

  • log4j(本体)
  • slf4j-log4j(slf4jとlog4j連携用)

log4j用設定ファイル(log4j.properties)を設置

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %5p %c{1} - %m%n

log4j.rootLogger=debug, stdout

コードは修正なし!!!!!!

実行

その他

Log4jからlogbackへの乗り換えは、log4j.properties to logback.xml Translatorが便利!!

めでたしめでたし。

MicroMVC – クイックスタート

9月 22, 2010 · Posted in MicroMVC, PHP · Comment 

MicroMVCとは

PHPのMVCフレームワーク。

MicroMVC

A blazing fast Model View Controller framework in less than 150kb!

超早いMVCフレームワーク。フレームワークサイズは150kb以下!!

インストール~セットアップ

1.ダウンロード

githubサイトから、アーカイブファイルをダウンロードして展開。

2.設置

PHPが実行できるパスにおく(今回はXAMPP環境で「d:\xampp\htdocs\micromvc\」に配置)

MicroMVC設定ファイル(config.php)のコピー

[インストールフォルダ]/localhost/config.sample.phpをコピー。ファイル名は、[インストールフォルダ]/localhost/config.php

MicroMVC設定ファイル(config.php)の記載を修正

279行目、サイトのURLを設置したディレクトリ名にあわせる(今回は、micromvcディレクトリに設置したので修正なし。)

// Absolute URL path to the site root. Default ("/")
define('SITE_URL', '/micromvc/');

localhostのフォルダ名を変更

[インストールディレクトリ]/localhostディレクトリを、設置するドメイン名と同一のものにする。

公式サイトより。

If your site is http://mysite.com then you need to rename the folder to mysite.com. If you are using a subdomain like http://mysite.somesite.com then you need to name the folder mysite.somesite.com.

サイトがhttp://mysite.comなら、フォルダ名はmysite.comとする。サブドメインを利用してhttp://mysite.somesite.comで運用する場合は、ディレクトリ名はmysite.somesite.comとする。

今回は、ローカルホストで動かすので、そのまま。

.htaccessの修正

インストールディレクトリにある、sample.htaccessファイルを.htaccessにリネーム

内容を修正する。
36行目、RewriteBaseの部分を運用するURLにあわせる(config.phpのSITE_URLと同一)

# The RewriteBase of the system (change if you are using this sytem in a sub-folder).
RewriteBase /

# The RewriteBase of the system (change if you are using this sytem in a sub-folder).
RewriteBase /micromvc/

設定完了。

http://localhost/micromvc/にアクセス。


Welcomeページが表示された。

PEAR – Text_CAPTCHA

9月 17, 2010 · Posted in PEAR, PEAR::Text_CAPTCHA, PHP · Comment 

Pear::Text_CAPTCHA。PearのCAPTCHA出力用モジュールを使ってみる。

インストール

例によって安定版が存在しないのでアルファ版をインストール

D:\>pear install Text_CAPTCHA
Failed to download pear/Text_CAPTCHA within preferred state “stable”, latest rel
ease is version 0.4.0, stability “alpha”, use “channel://pear.php.net/Text_CAPTC
HA-0.4.0″ to install
install failed

D:\>pear install Text_CAPTCHA-alpha
WARNING: channel “pear.php.net” has updated its protocols, use “pear channel-upd
ate pear.php.net” to update
Did not download optional dependencies: pear/Numbers_Words, pear/Text_Figlet, pe
ar/Image_Text, use –alldeps to download automatically
pear/Text_CAPTCHA can optionally use package “pear/Numbers_Words”
pear/Text_CAPTCHA can optionally use package “pear/Text_Figlet”
pear/Text_CAPTCHA can optionally use package “pear/Image_Text” (recommended vers
ion 0.6.0beta)
downloading Text_CAPTCHA-0.4.0.tgz …
Starting to download Text_CAPTCHA-0.4.0.tgz (14,833 bytes)
…..done: 14,833 bytes
downloading Text_Password-1.1.1.tgz …
Starting to download Text_Password-1.1.1.tgz (4,357 bytes)
…done: 4,357 bytes
install ok: channel://pear.php.net/Text_Password-1.1.1
install ok: channel://pear.php.net/Text_CAPTCHA-0.4.0

D:\>

PEAR::Image_Textもインストール

D:\>pear install Image_Text-beta
WARNING: channel “pear.php.net” has updated its protocols, use “pear channel-upd
ate pear.php.net” to update
downloading Image_Text-0.6.0beta.tgz …
Starting to download Image_Text-0.6.0beta.tgz (60,924 bytes)
……………done: 60,924 bytes
install ok: channel://pear.php.net/Image_Text-0.6.0beta

クイックスタート

サンプルコードの実行

<?php
require_once 'Text/CAPTCHA.php';

// CAPTCHA のオプションを設定します (フォントが存在する必要があります!)
$imageOptions = array(
    'font_size'        => 24,
    'font_path'        => './',
    'font_file'        => 'COUR.TTF',
    'text_color'       => '#DDFF99',
    'lines_color'      => '#CCEEDD',
    'background_color' => '#555555'
);

// CAPTCHA のオプションを設定します
$options = array(
    'width' => 200,
    'height' => 80,
    'output' => 'png',
    'imageOptions' => $imageOptions
);

// 新しい Text_CAPTCHA オブジェクトを Image ドライバで作成します
$c = Text_CAPTCHA::factory('Image');
$retval = $c->init($options);
if (PEAR::isError($retval)) {
    printf('CAPTCHA 作成時にエラー: %s!',
        $retval->getMessage());
    exit;
}

// CAPTCHA のパスフレーズを取得します
$_SESSION['phrase'] = $c->getPhrase();

// CAPTCHA 画像を (PNG 形式で) 取得します
$png = $c->getCAPTCHAAsPNG();
if (PEAR::isError($png)) {
    echo 'CAPTCHA 作成時にエラー!';
    echo $png->getMessage();
    exit;
}
file_put_contents(md5(session_id()) . '.png', $png);
?>

おこられ

フォントがないのが原因ぽい(8行目の「’font_file’=>’COUR.TTF’」)

とりあえず、IPAフォントをダウンロード。(IPAフォント)ipag.ttfをソースコードと同一ディレクトリにおいて、8行目のフォント指定をipag.ttfに修正して再実行・・・画面真っ白。

と思ったら、ソースコードのディレクトリに「’ランダムな文字列.png’」ファイルができてた。

簡単。

次ページへ »