내 flex 4.5 프로젝트에서 메시지를 기록 할 수있는 가능성을 찾고 있습니다. 이것에 의해, remoteClasses, errorHandler의 에러 메세지, 또는 수동으로 입력 된 메세지가 포함될 필요가 있습니다. 많은 웹 페이지를 읽은 후에 파슬 레이션의 솔루션이 좋게 보입니다. 어쨌든이 프레임 워크로 전환하고 싶습니다.플렉스 및 파슬리 로깅
런타임시 로깅 동작을 구성 할 수있는 이점이 있습니다. 하지만 나는 설명서를 이해하지 못합니다. 아마도 나는 파슬리에서 아주 유명해 졌을 것입니다. 또한 google에는 적당한 결과가 없다.
이미 해 보셨나요? 몇 가지 코드 스 니펫을 제공 할 수 있습니다. 덕분에 많은
프랭크
편집 : J_A_X는 비판을 정당화의 내가 부분적으로 성공했기 때문에 때문에, 난 내 코드를 추가합니다.
먼저 런타임에서 로깅 동작을 구성하기 때문에 구성 파일이 필요합니다. 이것은 프로젝트 루트에있는 간단한 xml 파일입니다. 파슬리는 기본적 TraceTarget으로 사용하기 때문에,이 시점에서
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600"
initialize="onAppInitiallize(event)"
xmlns:parsley="http://www.spicefactory.org/parsley"
>
<fx:Script>
<![CDATA[
import mx.controls.Label;
import mx.events.FlexEvent;
import mx.logging.Log;
import org.spicefactory.lib.logging.LogContext;
import org.spicefactory.parsley.flex.logging.FlexLoggingXmlSupport;
protected function onAppInitiallize(event:FlexEvent):void
{
FlexLoggingXmlSupport.initialize();
LogContext.getLogger(this);
//Log.getLogger("myCat").info("MyInfo");
}
protected function button1_clickHandler():void
{
Log.getLogger(this.toString()).info("myMessage");
Log.getLogger(this.toString()).fatal("myMessage");
}
]]>
</fx:Script>
<fx:Declarations>
<parsley:ContextBuilder>
<parsley:XmlConfig file="config.xml"/>
</parsley:ContextBuilder>
</fx:Declarations>
<s:Button click="button1_clickHandler()" label="SendLogToParsley" />
</s:Application>
가, 로깅은 플렉스 빌더의 콘솔에서 작동합니다 :
<?xml version="1.0" encoding="UTF-8"?>
<objects
xmlns="http://www.spicefactory.org/parsley"
xmlns:log="http://www.spicefactory.org/parsley/flex/logging"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.spicefactory.org/parsley
http://www.spicefactory.org/parsley/schema/2.3/parsley-core.xsd
http://www.spicefactory.org/parsley/flex/logging
http://www.spicefactory.org/parsley/schema/2.3/parsley-logging-flex.xsd"
>
<log:target level="info" type="components.SocketTarget">
</log:target>
</objects>
이 내 응용 프로그램입니다. 자, Logfiles를 소켓에 보내고 싶습니다. 나는 litte rough SocketTarget을 썼다. 내가 코멘트
이 태그에 의해 생성 된 기본 대상 유형을 볼 수 파슬리 문서에서
는 TraceTarget이다. 당신은 명시 적으로 다른 대상 유형을 선언 할 수 있습니다 : 내가 형 속성을 추가 할 경우package de.axurit.components { import flash.net.Socket; import mx.logging.AbstractTarget; import mx.logging.LogEvent; import mx.logging.targets.LineFormattedTarget; public class SocketTarget extends AbstractTarget { private var _host:String; private var _port:int; private var _socket:Socket; public function SocketTarget(host:String = "localhost",port:int=8085) { _host = host; _port = port; _socket = new Socket (host,port); super(); } override public function logEvent (event:LogEvent):void { trace ("logevent" + event.message); _socket.writeUTF(event.message + String.fromCharCode(13)); _socket.flush(); } } }
, 난이 ERRORMESSAGE "BootstrapProcessor에서 하나 이상의 오류"를받을 수 있습니다. 오타가 나도 마찬가지예요.
몇 가지 힌트를 줄 수 있습니까? 내 로그를 소켓 대상으로 보낼 수 있습니까?
이 질문을 해결할 수 없으면 투표 마감을하겠습니다. 정확히 무엇을 요구하고 있습니까? 예를 들면? 무엇을 성취하려고합니까? Parsley의 Dev 매뉴얼에서 로깅 섹션을 보셨습니까? 너 뭐 해봤 니? 코드는 어딨어? –
예, 맞습니다. 어제 나는 절망적 이었어. 확실하지 않았습니다. 일반적인 경우 가능하고 모르는 경우 어떻게 구현할 수 있습니까? 모든 시도는 NIL에서 끝났습니다. 그래서 제 질문은, 누군가 간단한 예제를 가지고 있다면, 파슬리에 어떻게 로그 할 수 있는지입니다. 나는 이것이 거의 사용되지 않는다고 생각하지 않는다. – Frank