001 package org.apache.archiva.audit; 002 003 /* 004 * Licensed to the Apache Software Foundation (ASF) under one 005 * or more contributor license agreements. See the NOTICE file 006 * distributed with this work for additional information 007 * regarding copyright ownership. The ASF licenses this file 008 * to you under the Apache License, Version 2.0 (the 009 * "License"); you may not use this file except in compliance 010 * with the License. You may obtain a copy of the License at 011 * 012 * http://www.apache.org/licenses/LICENSE-2.0 013 * 014 * Unless required by applicable law or agreed to in writing, 015 * software distributed under the License is distributed on an 016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 017 * KIND, either express or implied. See the License for the 018 * specific language governing permissions and limitations 019 * under the License. 020 */ 021 022 import org.slf4j.Logger; 023 import org.slf4j.LoggerFactory; 024 import org.springframework.stereotype.Service; 025 026 /** 027 * AuditLog - Audit Log. 028 * 029 * 030 * 031 */ 032 @Service("auditListener#logging") 033 public class AuditLog 034 implements AuditListener 035 { 036 public static final Logger logger = LoggerFactory.getLogger( "org.apache.archiva.AuditLog" ); 037 038 private static final String NONE = "-"; 039 040 private static final char DELIM = ' '; 041 042 /** 043 * Creates a log message in the following format ... 044 * "{repository_id} {user_id} {remote_ip} \"{resource}\" \"{action}\"" 045 */ 046 public void auditEvent( AuditEvent event ) 047 { 048 StringBuilder msg = new StringBuilder(); 049 msg.append( checkNull( event.getRepositoryId() ) ).append( DELIM ); 050 msg.append( event.getUserId() ).append( DELIM ); 051 msg.append( checkNull( event.getRemoteIP() ) ).append( DELIM ); 052 msg.append( '\"' ).append( checkNull( event.getResource() ) ).append( '\"' ).append( DELIM ); 053 msg.append( '\"' ).append( event.getAction() ).append( '\"' ); 054 055 logger.info( msg.toString() ); 056 } 057 058 private String checkNull( String s ) 059 { 060 return s != null ? s : NONE; 061 } 062 }