kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Common Log File System(CLFS)

ログ書き込みのパフォーマンスをあげるべく、Common Log File System(以下CLFS)とEvent Tracing(ETW)を検討しています。まずはCLFS…見事に日本語ないですね。System.IO.Logの説明見たほうがいい…とまではいきませんが。
Visual Studio 2008 SP1に付属しているヘルプではCLFSの説明を見ると、オフライン側はソースが間違ってるw。オンライン側はだいぶ直しているようですが、まだ間違っています。
Creating a Log File (Windows)

     if (argc > 3 && logInfo.TotalContainers == 0)
      {
         ULONG logContainerSize = _wtol(argv[3]);
         logPolicy.Version = CLFS_MGMT_POLICY_VERSION;
         logPolicy.LengthInBytes = sizeof(logPolicy);
         logPolicy.PolicyType = ClfsMgmtPolicyNewContainerSize;
         logPolicy.PolicyParameters.NewContainerSize.SizeInBytes =
            (logContainerSize / SECTOR_SIZE)*SECTOR_SIZE + 
            logPolicy.LengthInBytes;
        if (!InstallLogPolicy(logHndl, &logPolicy))
            ErrorExit("InstallLogPolicy for Container Length");

logPolicy.PolicyParameters.PolicyFlagsに0を設定していないので、InstallLogPolicyが失敗します。ヘルプにも0を指定して!って書いているので、注意が必要と。