简体   繁体   中英

logs - How to remove database information in log files

Im using Spring iBatis Framework for my project. Then for logging im using logback. Then, upon checking the log files, I can see the database the system is using... I want to hide this for security purposes

Here is the sample log..

12:22:59.585 [http-bio-3088-exec-1] DEBUG org.mybatis.spring.SqlSessionUtils - Creating SqlSession with JDBC Connection [jdbc:postgresql://127.0.0.1:5432/SAMPLEDB, UserName=postgres, PostgreSQL Native Driver]
12:22:59.585 [http-bio-3088-exec-1] DEBUG java.sql.Connection - ooo Connection Opened
12:22:59.585 [http-bio-3088-exec-1] DEBUG o.m.s.t.SpringManagedTransaction - JDBC Connection [jdbc:postgresql://127.0.0.1:5432/SAMPLEDB, UserName=postgres, PostgreSQL Native Driver] will not be managed by Spring
12:22:59.585 [http-bio-3088-exec-1] DEBUG org.mybatis.spring.SqlSessionUtils - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@13c8ced] was not registered for synchronization because synchronization is not active
12:22:59.585 [http-bio-3088-exec-1] DEBUG java.sql.PreparedStatement - ==>  Executing: SELECT * (purposely deleted)
12:22:59.585 [http-bio-3088-exec-1] DEBUG java.sql.PreparedStatement - ==> Parameters: ADMIN(String), 0(Integer)
12:22:59.585 [http-bio-3088-exec-1] DEBUG java.sql.ResultSet - <==    Columns: (purposely deleted, list of columns)
12:22:59.585 [http-bio-3088-exec-1] DEBUG java.sql.ResultSet - <==        Row: 86, ADMIN, 1, 7, 0, ADMIN, 20170403, 135432, SCREENID, null, null, null, null, 0, null, 1
12:22:59.585 [http-bio-3088-exec-1] DEBUG org.mybatis.spring.SqlSessionUtils - Closing no transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@13c8ced]
12:22:59.585 [http-bio-3088-exec-1] DEBUG org.mybatis.spring.SqlSessionUtils - Creating SqlSession with JDBC Connection [jdbc:postgresql://127.0.0.1:5432/SAMPLEDB, UserName=postgres, PostgreSQL Native Driver]
12:22:59.585 [http-bio-3088-exec-1] DEBUG java.sql.Connection - ooo Connection Opened
12:22:59.585 [http-bio-3088-exec-1] DEBUG o.m.s.t.SpringManagedTransaction - JDBC Connection [jdbc:postgresql://127.0.0.1:5432/SAMPLEDB, UserName=postgres, PostgreSQL Native Driver] will not be managed by Spring
12:22:59.585 [http-bio-3088-exec-1] DEBUG org.mybatis.spring.SqlSessionUtils - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@18bbc43] was not registered for synchronization because synchronization is not active
12:22:59.601 [http-bio-3088-exec-1] DEBUG java.sql.PreparedStatement - ==>  Executing: SELECT count(*) (purposely deleted)
12:22:59.601 [http-bio-3088-exec-1] DEBUG java.sql.PreparedStatement - ==> Parameters: 1(Integer), 7(BigDecimal), SA(String), 0(Integer), 20170404(Integer), 20170404(Integer)
12:23:00.241 [http-bio-3088-exec-1] DEBUG java.sql.ResultSet - <==    Columns: count
12:23:00.241 [http-bio-3088-exec-1] DEBUG java.sql.ResultSet - <==        Row: 7

logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>


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

    <appender name="WINFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>C:/logs/logfile.log</File>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%d{HH:mm:ss.SSS} %-5level %logger - %msg%n</pattern>
        </layout>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>C:/logs/logfile-%d{yyyy-MM-dd}-%i.txt</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>2MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>


    <root level="debug">
        <appender-ref ref="STDOUT" />
         <appender-ref ref="WINFILE" />
    </root>

</configuration>

I want to remove the omstSpringManagedTransaction part

If you change the root logger to level to INFO , it will be applied to all packages ie, if you wanted to change the logging level for all packages, you can change the level at the root .

But, if you wanted to control only omstSpringManagedTransaction logging alone, then you can do that by adding a logger for that package as shown below:

<!-- set this level to WARN/ERROR upto your project -->
<logger name="o.m.s.t.SpringManagedTransaction" level="INFO" additivity="false">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="WINFILE"/>
</logger>

<!-- if you want add more loggers here for different packages -->    

<!-- this is for all other packages -->
<root level="debug">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="WINFILE" />
 </root>

Change your root log level to info. This means it will not print debugging logs.

<root level="info">
        <appender-ref ref="STDOUT" />
         <appender-ref ref="WINFILE" />
    </root>
<root level="info">

or add this in logback.xml

<logger name="o.m.s.t.SpringManagedTransaction" additivity="false">
  <level value="info"/>
  <appender-ref ref="STDOUT"/>
  <appender-ref ref="WINFILE"/>
</logger>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM